利用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 相关文章推荐
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
简单的PHP图片上传程序
Mar 27 PHP
php HtmlReplace输入过滤安全函数
Jul 03 PHP
那些年一起学习的PHP(三)
Mar 22 PHP
对象失去焦点时自己动提交数据的实现代码
Nov 06 PHP
基于php冒泡排序算法的深入理解
Jun 09 PHP
php中创建和调用webservice接口示例
Jul 25 PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
thinkphp框架实现删除和批量删除
Jun 29 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
Mar 18 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
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
YII2自动登录Cookie总是失效的解决方法
2017/06/28 PHP
PHPExcel 修改已存在Excel的方法
2018/05/03 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
javascript中动态函数用法实例分析
2015/05/14 Javascript
jQuery采用连缀写法实现的折叠菜单效果
2015/09/18 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
详解vue-cli脚手架中webpack配置方法
2018/08/22 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
2019/01/18 jQuery
详解JavaScript 的变量
2019/03/08 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
Appium+Python实现简单的自动化登录测试的实现
2021/01/26 Python
numpy实现RNN原理实现
2021/03/02 Python
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
毕业生自我推荐
2013/11/04 职场文书
2014年新生军训方案
2014/05/01 职场文书
2014年感恩节活动策划方案
2014/10/06 职场文书
教师党员整改措施
2014/10/24 职场文书
2015年电信员工工作总结
2015/05/26 职场文书
安全守法证明
2015/06/23 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书