> 백엔드 개발 > PHP 튜토리얼 > php模拟post请求方法总结

php模拟post请求方法总结

WBOY
풀어 주다: 2016-06-20 13:04:01
원래의
1218명이 탐색했습니다.

php 模拟 post 请求方法主要有两种办法,通过 fsocket 和通过 curl。

下面就简单的举两个案例说明一下 php 如何使用这两种方法模拟 post 请求。

(1)php 通过 fsocket 模拟 post 提交请求

<p><?php</p>function sock_post($url,$query){<br />	$info=parse_url($url);<br />	$fp=fsockopen($info["host"],80,$errno,$errstr,3);<br />	$head="POST ".$info['path']." HTTP/1.0\r\n";<br />	$head.="Host: ".$info['host']."\r\n";<br />	$head.="Referer: http://".$info['host'].$info['path']."\r\n";<br />	$head.="Content-type: application/x-www-form-urlencoded\r\n";<br />	$head.="Content-Length: ".strlen(trim($query))."\r\n";<br />	$head.="\r\n";<br />	$head.=trim($query);<br />	$write=fputs($fp,$head);<br />	while(!feof($fp)){<br />		$line=fgets($fp);<br />		echo $line."<br>";<br />	}<br /><p>}</p>
로그인 후 복사

使用方法如下(注意$url这个参数必须是域名,不可以是localhost这种形式的url):

<p>$purl="http://www.scutephp.com/post.php";</p>echo "以下是POST方式的响应内容:<br>"; <br /><p>sock_post($purl,"name=php程序员教程网&url=http://www.scutephp.com/");</p>
로그인 후 복사

(2)php 通过 curl 模拟 post 提交请求

<p><?php</p>$url='http://www.scutephp.com/post.php';<br />$fields=array(<br />	'lname'=>'justcoding',<br />	'fname'=>'phplover',<br />	'title'=>'myapi',<br />	'email'=>'1290026290@qq.com',<br />	'phone'=>'188888888888'<br />);<br />$ch=curl_init();<br />curl_setopt($ch,CURLOPT_URL,$url);<br />curl_setopt($ch,CURLOPT_POST,count($fields));<br />curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);<br />ob_start();<br />curl_exec($ch);<br />$result=ob_get_contents();<br />ob_end_clean();<br />echo $result;<br />curl_close($ch);
로그인 후 복사


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿