How to receive JSON POST with PHP

Let us first look at the below three features:

  • php://input: This is a read-only stream that allows us to read raw data from the request body. It returns all the raw data after the HTTP-headers of the request, regardless of the content type.
  • file_get_contents() function: This function in PHP is used to read a file into a string.
  • json_decode() function: This function takes a JSON string and converts it into a PHP variable that may be an array or an object.

It is known that the all of the post data can be received in a PHP script using the $_POST[] global variable. But this fails in the case when we want to receive JSON string as post data. To receive JSON string we can use the “php://input” along with the function file_get_contents() which helps us receive JSON data as a file and reads it into a string.

Later, we can use the json_decode() function to decode the JSON string.

Handling JSON POST request:

// Takes raw data from the request
$json = file_get_contents('php://input');

// Converts it into a PHP object
$data = json_decode($json);

Example 1:



filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
$json = '["geeks", "for", "geeks"]';
  
$data = json_decode($json);
  
echo $data[0];
?>

chevron_right


Output:

geeks

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
$json = '{
    "title": "PHP",
    "site": "GeeksforGeeks"
}';
  
$data = json_decode($json);
  
echo $data->title;
echo "\n";
  
echo $data->site;
?>

chevron_right


Output:

PHP
GeeksforGeeks


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


1


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.