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’.
<?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 ; ?> |
To view the items in the content, the following code is written in ‘demo1.php’:
<?php echo $_POST [ 'Name' ]; ?> |
The code prints the following output on the specified URL: