(转)PHP利用Curl、socket、file_get_contents POST数据
1 /** 2 * 其它版本 3 * 使用方法: 4 * $post_string = "app=request&version=beta"; 5 * request_by_other('http://facebook.cn/restServer.php',$post_string); 6 */ 7 function request_by_other($remote_server,$post_string){ 8 $context = array( 9 'http'=>array( 10 'method'=>'POST', 11 'header'=>'Content-type: application/x-www-form-urlencoded'."\r\n". 12 'User-Agent : Jimmy\'s POST Example beta'."\r\n". 13 'Content-length: '.strlen($post_string)+8, 14 'content'=>.$post_string) 15 ); 16 $stream_context = stream_context_create($context); 17 $data = file_get_contents($remote_server,FALSE,$stream_context); 18 return $data; 19 } 20 21 /** 22 * Socket版本 23 * 使用方法: 24 * $post_string = "app=socket&version=beta"; 25 * request_by_socket('facebook.cn','/restServer.php',$post_string); 26 */ 27 function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30){ 28 $socket = fsockopen($remote_server,$port,$errno,$errstr,$timeout); 29 if (!$socket) die("$errstr($errno)"); 30 31 fwrite($socket,"POST $remote_path HTTP/1.0\r\n"); 32 fwrite($socket,"User-Agent: Socket Example\r\n"); 33 fwrite($socket,"HOST: $remote_server\r\n"); 34 fwrite($socket,"Content-type: application/x-www-form-urlencoded\r\n"); 35 fwrite($socket,"Content-length: ".strlen($post_string)+8."\r\n"); 36 fwrite($socket,"Accept:*/*\r\n"); 37 fwrite($socket,"\r\n"); 38 fwrite($socket,"mypost=$post_string\r\n"); 39 fwrite($socket,"\r\n"); 40 41 $header = ""; 42 while ($str = trim(fgets($socket,4096))) { 43 $header.=$str; 44 } 45 46 $data = ""; 47 while (!feof($socket)) { 48 $data .= fgets($socket,4096); 49 } 50 51 return $data; 52 } 53 54 /** 55 * Curl版本 56 * 使用方法: 57 * $post_string = "app=request&version=beta"; 58 * request_by_curl('http://facebook.cn/restServer.php',$post_string); 59 */ 60 function request_by_curl($remote_server,$post_string){ 61 $ch = curl_init(); 62 curl_setopt($ch,CURLOPT_URL,$remote_server); 63 curl_setopt($ch,CURLOPT_POSTFIELDS,'mypost='.$post_string); 64 curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); 65 curl_setopt($ch,CURLOPT_USERAGENT,"Jimmy's CURL Example beta"); 66 $data = curl_exec($ch); 67 curl_close($ch); 68 return $data; 69 }
你对人生迷茫吗?
那就背起行囊,起步远行吧