Warning: Error while sending QUERY packet. PID=5679 in /home/wwwroot/coco/domain/cnlamp/web/wp-includes/wp-db.php on line 1924 php模拟POST获取数据 | LAMP新闻|技巧|经验|资讯站
现在的位置: 首页PHP>正文
php模拟POST获取数据
发表于7年前 PHP 暂无评论

1.通过curl函数

$post_data = array();
$post_data['clientname'] = "test";
$post_data['clientpasswd'] = "test";
$url='http://xxx.xxx.xxx.xx/xx/xxx/a.php';
$o="";
foreach ($post_data as $k=>$v)
{
    $o.= "$k=".urlencode($v)."&";
}
$post_data=substr($o,0,-1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//加上这句代码,将结果返回,否则,直接输出
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
//为了支持cookie
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($ch);

2、通过fsockopen

$URL=‘http://xxx.xxx.xxx.xx/xx/xxx/a.php';
$post_data['clientname'] = "test";
$post_data['clientpasswd'] = "test";
$referrer="";
$URL_Info=parse_url($URL);
if($referrer=="")
$referrer=$_SERVER["SCRIPT_URI"];
foreach($post_data as $key=>$value)
    $values[]="$key=".urlencode($value);   
 
$data_string=implode("&",$values);
if(!isset($URL_Info["port"]))
    $URL_Info["port"]=80;
$request.="POST ".$URL_Info["path"]." HTTP/1.1\n";
$request.="Host: ".$URL_Info["host"]."\n";
$request.="Referer: $referrer\n";
$request.="Content-type: application/x-www-form-urlencoded\n";
$request.="Content-length: ".strlen($data_string)."\n";
$request.="Connection: close\n";
$request.="\n";
$request.=$data_string."\n";
$fp = fsockopen($URL_Info["host"],$URL_Info["port"]);
fputs($fp, $request);
while(!feof($fp)) {
    $result .= fgets($fp, 128);
}
fclose($fp);

给我留言

留言无头像?


×
腾讯微博