利用PHP fsockopen 模拟POST/GET传送数据的方法


Posted in PHP onSeptember 22, 2015

使用php可以模拟 post 和 get 传送数据到别的网页或站点

$arr=array(
  'user'=>'test',
  'password'=>''
);
sock_get($post_url,$arr);
sock_post($post_url,$arr); 
//fsocket模拟get提交
function sock_get($url,$query=array()){
  $query_str = http_build_query($query);
  $<span id="_nwp" style="width: auto; height: auto; float: none;"><a id="_nwl" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=&app_id=&c=news&cf=&ch=&di=&fv=&is_app=&jk=ecbeccb&k=info&k=info&kdi=&luki=&n=&p=baidu&q=_cpr&rb=&rs=&seller_id=&sid=bccbece&ssp=&stid=&t=tpclicked_hc&td=&tu=u&u=http%A%F%Fwww%Eixuexiwang%Ecom%Fphp%Dfunction%F%F%F%Ehtml&urlid=" target="_blank" mpid="" style="text-decoration: none;"><span style="color:#ff;font-size:px;width:auto;height:auto;float:none;">info</span></a></span> = parse_url($url);
  $port = isset($info['port'])? $info['port'] : ;
  $query_str = empty($info["query"])?$query_str:$info["query"].'&'.$query_str;
  $fp = fsockopen($info["host"], $port, $errno, $errstr, );
  if(!$fp){
    return FALSE;
  }
  //$<span id="_nwp" style="width: auto; height: auto; float: none;"><a id="_nwl" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=&app_id=&c=news&cf=&ch=&di=&fv=&is_app=&jk=ecbeccb&k=head&k=head&kdi=&luki=&n=&p=baidu&q=_cpr&rb=&rs=&seller_id=&sid=bccbece&ssp=&stid=&t=tpclicked_hc&td=&tu=u&u=http%A%F%Fwww%Eixuexiwang%Ecom%Fphp%Dfunction%F%F%F%Ehtml&urlid=" target="_blank" mpid="" style="text-decoration: none;"><span style="color:#ff;font-size:px;width:auto;height:auto;float:none;">head</span></a></span> = "GET ".$info['path']."?".$info["query"]." HTTP/.\r\n";
  $head = "GET ".$info['path']."?".$query_str." HTTP/.\r\n";
  $head .= "Host: ".$info['host']."\r\n";
  $head .= "\r\n";
  $write = fputs($fp,$head);
  while(!feof($fp)){
    $<span id="_nwp" style="width: auto; height: auto; float: none;"><a id="_nwl" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=&app_id=&c=news&cf=&ch=&di=&fv=&is_app=&jk=ecbeccb&k=line&k=line&kdi=&luki=&n=&p=baidu&q=_cpr&rb=&rs=&seller_id=&sid=bccbece&ssp=&stid=&t=tpclicked_hc&td=&tu=u&u=http%A%F%Fwww%Eixuexiwang%Ecom%Fphp%Dfunction%F%F%F%Ehtml&urlid=" target="_blank" mpid="" style="text-decoration: none;"><span style="color:#ff;font-size:px;width:auto;height:auto;float:none;">line</span></a></span> = fread($fp,);
    echo $line;
  }
  fclose($fp);
  return true;
}
//fsockopen模拟POST
function sock_post($url,$<span id="_nwp" style="width: auto; height: auto; float: none;"><a id="_nwl" href="http://cpro.baidu.com/cpro/ui/uijs.php?adclass=&app_id=&c=news&cf=&ch=&di=&fv=&is_app=&jk=ecbeccb&k=data&k=data&kdi=&luki=&n=&p=baidu&q=_cpr&rb=&rs=&seller_id=&sid=bccbece&ssp=&stid=&t=tpclicked_hc&td=&tu=u&u=http%A%F%Fwww%Eixuexiwang%Ecom%Fphp%Dfunction%F%F%F%Ehtml&urlid=" target="_blank" mpid="" style="text-decoration: none;"><span style="color:#ff;font-size:px;width:auto;height:auto;float:none;">data</span></a></span>=array()){
  $query = http_build_query($data); 
  $info = parse_url($url);
  $fp = fsockopen($info["host"], , $errno, $errstr, );
  $head = "POST ".$info['path']."?".$info["query"]." HTTP/.\r\n";
  $head .= "Host: ".$info['host']."\r\n";
  $head .= "Referer: http://".$info['host'].$info['path']."\r\n";
  $head .= "Content-type: application/x-www-form-urlencoded\r\n";
  $head .= "Content-Length: ".strlen(trim($query))."\r\n";
  $head .= "\r\n";
  $head .= trim($query);
  $write = fputs($fp, $head);
  while (!feof($fp))
  {
    $line = fread($fp,);
    echo $line;
  }
}

以上内容是给大家分享的利用PHP fsockopen 模拟POST/GET传送数据的方法,希望大家能够喜欢,更多有关php fsockopen知识请持续关注本站,谢谢。

PHP 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
给初学PHP的5个入手程序
Nov 23 PHP
PHP 进程锁定问题分析研究
Nov 24 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 PHP
解决file_get_contents无法请求https连接的方法
Dec 17 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
php生成圆角图片的方法
Apr 07 PHP
Zend Framework教程之资源(Resources)用法实例详解
Mar 14 PHP
Zend Studio使用技巧两则
Apr 01 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
PHP判断字符串长度的两种方法很实用
Sep 22 #PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
Sep 22 #PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
Sep 22 #PHP
PHP实现搜索相似图片
Sep 22 #PHP
从刷票了解获得客户端IP的方法
Sep 21 #PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 #PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 #PHP
You might like
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
Destoon实现多表查询示例
2014/08/21 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
javascript 继承实现方法
2009/08/26 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
javascript 数组排序函数sort和reverse使用介绍
2013/11/21 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
微信小程序page的生命周期和音频播放及监听实例详解
2017/04/07 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
JavaScript解决浮点数计算不准确问题的方法分析
2018/07/09 Javascript
layui中table表头样式修改方法
2018/08/15 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
jquery中attr、prop、data区别与用法分析
2019/09/25 jQuery
[02:49]DOTA2完美大师赛首日观众采访
2017/11/23 DOTA
[01:07:53]RNG vs VG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python删除过期文件的方法
2015/05/29 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
Python求凸包及多边形面积教程
2020/04/12 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
小橄榄树:Le Petit Olivier
2018/04/23 全球购物
经贸日语专业个人求职信
2013/12/13 职场文书
开工仪式主持词
2014/03/20 职场文书
食品安全处置方案
2014/06/14 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
史上最全的军训拉歌口号
2015/12/25 职场文书