利用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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Oct 09 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
PHP判断远程图片是否存在的几种方法
May 04 PHP
在Yii框架中使用PHP模板引擎Twig的例子
Jun 13 PHP
PHP数组游标实现对数组的各种操作详解
Jan 26 PHP
PHP云打印类完整示例
Oct 15 PHP
php compact 通过变量创建数组
Nov 15 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
Sep 21 PHP
PHP自动识别当前使用移动终端
May 21 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 PHP
PHP多进程简单实例小结
Nov 09 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
PHP时间和日期函数详解
2015/05/08 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
javascript 数组排序函数
2009/08/20 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
JavaScript DOM节点添加示例
2014/07/16 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
[03:12]完美世界DOTA2联赛PWL DAY9集锦
2020/11/10 DOTA
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
python类继承与子类实例初始化用法分析
2015/04/17 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
python实现百度OCR图片识别过程解析
2020/01/17 Python
使用Python获取当前工作目录和执行命令的位置
2020/03/09 Python
python 数据类型强制转换的总结
2021/01/25 Python
50个强大璀璨的CSS3/JS技术运用实例
2010/02/27 HTML / CSS
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
PHP面试题大全
2015/10/16 面试题
武汉高蓝德国际.net机试
2016/06/24 面试题
影视制作岗位职责
2013/12/04 职场文书
酒店总经理岗位职责
2015/04/01 职场文书
婚庆主持词大全
2015/06/30 职场文书
教学工作总结范文5篇
2019/08/19 职场文书
利用Redis实现点赞功能的示例代码
2022/06/28 Redis