How to post data using file_get_contents in PHP ?

The file_get_contents() function in PHP is used to read the contents of a file and make HTTP requests using GET and get HTTP responses using POST methods. The HTTP POST request can be made using the $context parameter of the file_get_contents() function, which posts the specified data to the URL specified using the $path parameter. The following syntax is used to POST requests to the required path:

Syntax:

string file_get_contents( $path, $include_path, 
                      $context, $offset, $max_length )

Parameters:

  • $path: A required parameter that specifies the URL to post data.
  • $include_path: It is an optional parameter that specifies if we wish to search for files in the included path while reading.
  • $context: It specifies the data in the form of a JSON stream to be posted to the URL.
  • $start: It is an optional parameter that is used to specify the starting point in the file for reading.
  • $max_length: It is an optional parameter that is used to specify the number of bytes to be read.

Therefore, a content stream can be created and then, injected into the respective path. The data can contain information in the form of key-value pairs. The context stream is created by the stream_context_create($options) function with the parameters supplied in the $options argument. The parameters contain the ‘method’ consisting of either GET or POST and ‘content’ parameter containing the data that has to appear on the URL.

The code snippet indicates a sample program to post data to the URL using the file_get_contents() method. We create a folder by the name Demo which contains two files “index.php” and “demo1.php” and run it using the MAMP server.




The following code is included in ‘index.php’.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
// Contains the url to post data
// this is my local server url
// demo is the folder name and
// demo1.php is other file
  
// Data is an array of key value pairs
// to be reflected on the site
$data = array('Name' => 'John', 'Age' => '24');
  
// Method specified whether to GET or
// POST data with the content specified
// by $data variable. 'http' is used
// even in case of 'https'
  
$options = array(
    'http' => array(
    'method' => 'POST',
    'content' => http_build_query($data))
);
  
// Create a context stream with
// the specified options
$stream = stream_context_create($options);
  
// The data is stored in the 
// result variable
$result = file_get_contents(
        $url_path, false, $stream);
  
echo $result;
?>

chevron_right


To view the items in the content, the following code is written in ‘demo1.php’:

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
echo $_POST['Name'];
?> 

chevron_right


The code prints the following output on the specified URL:




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.