>  기사  >  백엔드 개발  >  php的fsockopen post表单

php的fsockopen post表单

WBOY
WBOY원래의
2016-06-23 14:32:18897검색

好久没用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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:php.ini设置다음 기사:PHP & Memcached 实例