王志广的个人分享

        王志广的个人分享 >> PHP >> PHP模拟POST提交数据三种方式

PHP模拟POST提交数据三种方式

admin发表于2014-10-28  3,249次浏览 标签: 

PHP模拟POST提交数据有file_get_contents、curl和socket,他们都可以通过模拟POST提交,实现POST数据传输。

file_get_contents模拟POST提交:
$arr=array(‘http’=>array(‘method’=>’POST’,’content’=>’name=wang&pwd=123′));
$result = file_get_contents(“www.wangzhiguang.com.cn”,false,stream_context_create($arr))

curl模拟POST提交:
$arr = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => false,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => array(‘name’=>’wang’,’pwd’=>’123′)
);
$ch = curl_init($url);
curl_setopt_array($ch, $arr);
$result = curl_exec($ch);
curl_close($ch);

socket来模拟POST提交:
$url = “www.wangzhiguang.com.cn”;
$host = 80;
$content = ‘name=wang&pwd=123’;
$fp = fsockopen($content, $host, $errno, $errstr);
$length = strlen($content);
$header = <<<HEADER
POST {$url} HTTP/1.1
Host: {$host}
Content-Type: application/x-www-form-urlencoded
Content-Length: {$length}
Connection: close

{$content}
HEADER;
fwrite($fp, $header);
while (!feof($fp)) {
$result .= fread($fp, 512);
}
$result = explode(“\r\n\r\n”, $result, 2);
connection: close和post数据之间要空一行
最好通过返回值$result你就可以看到发送状态了。

你可以发表评论引用到你的网站或博客,或通过RSS 2.0订阅这个日志的所有评论。
上一篇:
下一篇:
没有评论
我来说两句

  Ctrl+Enter