方法一,用 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\r\n"; $header .= "Host:".$host."\r\n"; $header .= "Referer:".$urlPage."\r\n"; $header .= "Content-Type:application/x-www-form-urlencoded\r\n"; $header .= "Content-Length:".$length."\r\n"; $header .= "Connection:Close\r\n\r\n"; //添加post的字符串 $header .= $postData."\r\n"; // 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 == "\n" || $line == "\r\n")) $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);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步