How do I send a POST request with PHP?
Actually I want to read the contents that come after the search query, when it is done. The problem is that the URL only accepts
POST
methods, and it does not take any action with GET
method...
I have to read all contents with the help of
domdocument
or file_get_contents()
. Is there any method that will let me send parameters with POST
method and then read the contents via PHP
?Solution :
CURL-less method with PHP5:
$url = 'http://server.com/path';
$data = array('key1' => 'value1', 'key2' => 'value2');
// use key 'http' even if you send the request to https://...
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) { /* Handle error */ }
var_dump($result);
See the PHP manual for more information on the method and how to add headers, for example:
- stream_context_create: http://php.net/manual/en/function.stream-context-create.php
COMMENTS