利用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 相关文章推荐
在windows iis5下安装php4.0+mysql之我见
Oct 09 PHP
PHP大小写问题:函数名和类名不区分,变量名区分
Jun 17 PHP
php随机显示图片的简单示例
Feb 15 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
Jun 13 PHP
通过PHP简单实例介绍文件上传
Dec 16 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
通过php动态传数据到highcharts
Apr 05 PHP
php获取用户真实IP和防刷机制的实例代码
Nov 28 PHP
浅谈Laravel核心解读之Console内核
Dec 02 PHP
PHP命令行与定时任务
Apr 01 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 裁剪图片成固定大小代码方法
2009/09/09 PHP
PHP下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
php重定向的三种方法分享
2012/02/22 PHP
浅析php单例模式
2014/11/25 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
2019/05/16 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
python抓取网页图片示例(python爬虫)
2014/04/27 Python
浅谈MySQL中的触发器
2015/05/05 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Python3实现转换Image图片格式
2018/06/21 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Django教程笔记之中间件middleware详解
2018/08/01 Python
python使用xlrd模块读取xlsx文件中的ip方法
2019/01/11 Python
Python多项式回归的实现方法
2019/03/11 Python
学习python分支结构
2019/05/17 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
Python 捕获代码中所有异常的方法
2020/08/03 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
英国的领先快速时尚零售商:In The Style
2019/03/25 全球购物
北京某公司的.net笔试题
2014/03/20 面试题
离婚协议书怎么写2014
2014/09/30 职场文书
党小组评议意见
2015/06/02 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
python解决12306登录验证码的实现
2021/04/18 Python
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server