方法一,用 file_get_contents
function send_post($url, $post_data) { //$postdata = http_build_query($post_data); //把数组转换成key=val& $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => $post_data, 'timeout' => 2 * 60 // 超时时间(单位:s) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; }
方法二、
function send_post2($host,$port,$urlPage,$postData){ // echo str_pad(" ", 256); $errno = ''; $errstr = ''; $length = strlen($postData); $fp = fsockopen($host,$port,$errno,$errstr,120) or exit($errstr."--->".$errno); //构 造post请求的头 $header = "POST $urlPage HTTP/1.1 "; $header .= "Host:".$host." "; $header .= "Referer:".$urlPage." "; $header .= "Content-Type:application/x-www-form-urlencoded "; $header .= "Content-Length:".$length." "; $header .= "Connection:Close "; //添加post的字符串 $header .= $postData." "; // echo "1"; // my_flush(); //发送post的数据 fputs($fp, $header); // echo "2"; // my_flush(); $inheader = 1; $result = ""; //最终结果 while (!feof($fp)){ $line = fgets($fp,1024); // 去除请求包的头只显示页面 的返回数据 (注意fgets fread($fp,1)最少2个字节起。) // echo $line; // my_flush(); if($inheader && ($line == " " || $line == " ")) $inheader = 0; if($inheader==0){ $result .= $line; } } fclose($fp); // echo "3"; // my_flush(); return $result; } //刷新缓冲区 function my_flush(){ ob_flush(); flush(); }
调用示例、
$host = "127.0.0.1"; $urlPage = "http://localhost/admin/confirmCode.php"; $port = "80"; $postData = "AAobjid=33$&username1=fff"; echo send_post2($host,$port,$urlPage,$postData) ; // echo send_post($urlPage,$postData);