欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php的fsockopen post表单

程序员文章站 2022-04-30 08:22:47
...
好久没用fsockopen,居然忘记了post的格式。 fsockopen post表单 2006-04-27 14:42:05 bailing

需要注意: 1.form的数据必须用rawurlencode编码联起来。 2.必须提交content-length长度 3.post表单的数据必须跟在\r\n\r\n后面。$data["channel"]=$moRow['serviceCode'];$data["mobile"]=$moRow['mobile'];$data["gateway"]=$moRow['gateway'];$data["isp"]=$moRow['isp'];$data["linkid"]=$moRow['linkid'];$data["msg"]=$content;while (list($k,$v) = each($data)) {$post .= rawurlencode($k)."=".rawurlencode($v)."&";}$post = substr( $post , 0 , -1 );$len = strlen($post);//发送$host = "localhost";$file = "/mtApp/send.php";$fp = @fsockopen( $host , 80, $errno, $errstr, 30);if (!$fp) {    echo "$errstr ($errno)\n";} else {	$receive = '';    $out = "POST $file HTTP/1.1\r\n";    $out .= "Host: $host\r\n";	$out .= "Content-type: application/x-www-form-urlencoded\r\n";    $out .= "Connection: Close\r\n";	$out .= "Content-Length: $len\r\n";	$out .="\r\n";	$out .= $post."\r\n";	echot($out);    fwrite($fp, $out);    while (!feof($fp)) {        $receive .= fgets($fp, 128);    }    fclose($fp);}echo $receive;	一个普通的post头POST /cgi-bin/tech/method.cgi HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*Referer: http://localhost//other.htmlAccept-Language: zh-cnContent-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)Host: localhost:8080Content-Length: 9Connection: Keep-Alive