利用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
15种PHP Encoder的比较
Mar 06 PHP
PHP 错误之引号中使用变量
May 04 PHP
header导出Excel应用示例
Jan 24 PHP
PHP实现的简单mock json脚本分享
Feb 10 PHP
在PHP程序中使用Rust扩展的方法
Jul 03 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
Oct 11 PHP
php cookie用户登录的详解及实例代码
Jan 03 PHP
Yii2使用$this-&gt;context获取当前的Module、Controller(控制器)、Action等
Mar 29 PHP
PHP实现文件上传功能实例代码
May 18 PHP
php-beanstalkd消息队列类实例分享
Jul 19 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
星际争霸秘籍
2020/03/04 星际争霸
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
JQuery 拾色器插件发布-jquery.icolor.js
2010/10/20 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
D3.js中data(), enter() 和 exit()的问题详解
2015/08/17 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
JavaScript之DOM插入更新删除_动力节点Java学院整理
2017/07/03 Javascript
VsCode插件整理(小结)
2017/09/14 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
[04:45]DOTA2上海特级锦标赛主赛事第四日RECAP
2016/03/06 DOTA
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
详解Python多线程
2016/11/14 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python使用pip安装报错:is not a supported wheel on this platform的解决方法
2018/01/23 Python
django框架cookie和session用法实例详解
2019/12/10 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
澳洲健康食品网上商店:Aussie Health Products
2018/06/15 全球购物
汇智创新科技发展有限公司
2015/12/06 面试题
劳资专员岗位职责
2013/12/27 职场文书
农村党支部先进事迹
2014/01/14 职场文书
在校大学生的职业生涯规划书
2014/03/14 职场文书
户籍证明书标准模板
2014/09/10 职场文书
武夷山导游词
2015/02/03 职场文书
公司宣传语大全
2015/07/13 职场文书
幼儿园音乐教学反思
2016/02/18 职场文书
python开发制作好看的时钟效果
2022/05/02 Python