码迷,mamicode.com
首页 > Web开发 > 详细

使用php模拟post的几种方法

时间:2015-06-27 23:59:52      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:

<?php
function file_get_contents_post($url,$post){
$options=array(
‘http‘=>array(
‘method‘=>‘POST‘,
//‘content‘=>‘name=caiknife&email=caiknife@gmail.com‘,
‘content‘=>http_build_query($post),
),
);

$result=file_get_contents($url,false,stream_context_create($options));

return$result;
}

$data=file_get_contents_post("http://www.a.com/post/post.php",array(‘name‘=>‘caiknife‘,‘email‘=>‘caiknife@gmail.com‘));




function curl_post($url,$post){
$options=array(
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_HEADER=>false,
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>$post,
);

$ch=curl_init($url);
curl_setopt_array($ch,$options);
$result=curl_exec($ch);
curl_close($ch);
return$result;
}

$data=curl_post("http://www.a.com/post/post.php",array(‘name‘=>‘caiknife‘,‘email‘=>‘caiknife@gmail.com‘));





function socket_post($url,$post){
$urls=parse_url($url);
if(!isset($urls[‘port‘])){
$urls[‘port‘]=80;
}

$fp=fsockopen($urls[‘host‘],$urls[‘port‘],$errno,$errstr);
if(!$fp){
echo"$errno,$errstr";
exit();
}

$post=http_build_query($post);
$length=strlen($post);
$header=<<<HEADER
POST{$urls[‘path‘]} HTTP/1.1
Host:{$urls[‘host‘]}
Content-Type:application/x-www-form-urlencoded
Content-Length:{$length}
Connection:close

{$post}
HEADER;

fwrite($fp,$header);
$result=‘‘;
while(!feof($fp)){
//receivetheresultsoftherequest
$result.=fread($fp,512);
}
$result=explode("\r\n\r\n",$result,2);
return$result[1];
}

$data=socket_post("http://www.a.com/post/post.php",array(‘name‘=>‘caiknife‘,‘email‘=>‘caiknife@gmail.com‘));



?>

 

【源码最能说明问题,源码是csdn的一篇博文里的:http://blog.csdn.net/caiknife/article/details/8796505】

使用php模拟post的几种方法

标签:

原文地址:http://www.cnblogs.com/zhanghaha/p/4604918.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!