Heim > Backend-Entwicklung > PHP-Tutorial > php模拟post请求方法总结

php模拟post请求方法总结

WBOY
Freigeben: 2016-06-20 13:04:01
Original
1215 Leute haben es durchsucht

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>
Nach dem Login kopieren

使用方法如下(注意$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>
Nach dem Login kopieren

(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);
Nach dem Login kopieren


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage