Revision: 62504
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 27, 2013 20:51 by apphp-snippets
Initial Code
<?php
// submit these variables to the server
$post_data = array("test"=>"yes", "passed"=>"yes", "id"=>"3");
// send a request to specified server
$result = do_post_request("http://www.example.com/", $post_data);
if($result["status"] == "ok"){
// headers
echo $result["header"];
// result of the request
echo $result["content"];
}else{
echo "An error occurred: ".$result["error"];
}
function do_post_request($url, $data, $referer = ""){
// convert the data array into URL Parameters like a=1&b=2 etc.
$data = http_build_query($data);
// parse the given URL
$url = parse_url($url);
if($url["scheme"] != "http"){
die("Error: only HTTP requests supported!");
}
// extract host and path from url
$host = $url["host"];
$path = $url["path"];
// open a socket connection with port 80, set timeout 40 sec.
$fp = fsockopen($host, 80, $errno, $errstr, 40);
$result = "";
if($fp){
// send a request headers
fputs($fp, "POST $path HTTP/1.1
");
fputs($fp, "Host: $host
");
if($referer != "") fputs($fp, "Referer: $referer
");
fputs($fp, "Content-type: application/x-www-form-urlencode
d
");
fputs($fp, "Content-length: ".strlen($data)."
");
fputs($fp, "Connection: close
");
fputs($fp, $data);
// receive result from request
while(!feof($fp)) $result .= fgets($fp, 128);
}else{
return array("status"=>"err", "error"=>"$errstr ($errno)");
}
// close socket connection
fclose($fp);
// split result header from the content
$result = explode("
", $result, 2);
$header = isset($result[0]) ? $result[0] : "";
$content = isset($result[1]) ? $result[1] : "";
// return as structured array:
return array(
"status" => "ok",
"header" => $header,
"content" => $content
);
}
?>
Initial URL
http://www.apphp.com/index.php?snippet=php-post-request-by-socket-connection
Initial Description
This example of code shows how to do a simple POST request in PHP to another web server by using a socket connection.
Initial Title
Doing POST Request by Socket Connection
Initial Tags
php, post
Initial Language
PHP