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