为了账号安全,请及时绑定邮箱和手机立即绑定

[php提交post数据]PHP模拟POST提交的2种方法

标签:
PHP

php模拟post提交数据方法(一)

通过curl函数

$post_data = array();

$post_data['clientname'] = "myname";

$post_data['clientpasswd'] = "password";

$post_data['submit'] = "submit";

$url='http://xxx.xxx.xxx.xx/xx/xxx/top.php';

$res="";

foreach ($post_data as $k=>$v)

{

$res.= "$k=".urlencode($v)."&";

}

$post_data=substr($res,0,-1);

$ch = curl_init();

curl_setopt($ch, CURLOPT_POST, 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);

php模拟post提交数据方法(二)

通过fsockopen

$URL=‘http://xxx.xxx.xxx.xx/xx/xxx/top.php';

$post_data['clientname'] = "myname";

$post_data['clientpasswd'] = "password";

$post_data['submit'] = "submit";

$referrer="";

// parsing the given URL

$URL_Info=parse_url($URL);

// Building referrer

if($referrer=="") // if not given use this script as referrer

$referrer=$_SERVER["SCRIPT_URI"];

// making string from $data

foreach($post_data as $key=>$value)

$values[]="$key=".urlencode($value);

$data_string=implode("&",$values);

// Find out which port is needed - if not given use standard (=80)

if(!isset($URL_Info["port"]))

$URL_Info["port"]=80;

// building POST-request:

$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);


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消