php使用fsockopen函数发送post,get请求获取网页内容的方法


Posted in PHP onNovember 15, 2014

本文实例讲述了php使用fsockopen函数发送post,get请求获取网页内容的方法。分享给大家供大家参考。

具体实现代码如下:

$post =1; 

$url = parse_url($url); 

$host ='https://3water.com'; 

$path ='/'; 

$query ='?action=phpfensi.com'; 

$port =80; 

  

if($post) { 

  $out = "post $path http/1.0 "; 

  $out .= "accept: */* "; 

  //$out .= "referer: $boardurl "; 

  $out .= "accept-language: zh-cn "; 

  $out .= "content-type: application/x-www-form-urlencoded "; 

  $out .= "user-agent: $_server[http_user_agent] "; 

  $out .= "host: $host "; 

  $out .= 'content-length: '.strlen($post)." "; 

  $out .= "connection: close "; 

  $out .= "cache-control: no-cache "; 

  $out .= "cookie: $cookie "; 

  $out .= $post; 

 } else { 

  $out = "get $path http/1.0 "; 

  $out .= "accept: */* "; 

  //$out .= "referer: $boardurl "; 

  $out .= "accept-language: zh-cn "; 

  $out .= "user-agent: $_server[http_user_agent] "; 

  $out .= "host: $host "; 

  $out .= "connection: close "; 

  $out .= "cookie: $cookie "; 

 } 

 $fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout); 

 if(!$fp)  

 { 

  return '';//note $errstr : $errno  

 } else { 

  return '成功访问'; 

 }

fsockopen语法:
resource fsockopen(string $hostname [,int $port = -1 [, int &$errno [,string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )

启动一个套接字连接到指定的主机的资源,php支持在互联网领域的目标和unix在所支持的套接字传输列表说明,所支持的传输列表也可以检索使用stream_get_transports().

该插座预设会被启用,阻塞模式,你可以切换到非阻塞模式使用stream_set_blocking(),如果上面实例看不懂,就来看个简的吧,代码如下:

$fp = fsockopen("3water.com", 80, $errno, $errstr, 30); 

 if (!$fp) { 

  echo "$errstr ($errno) "; 

 } else { 

  $out = "get / http/1.1 "; 

  $out .= "host: 3water.com"; 

  $out .= "connection: close "; 

  fwrite($fp, $out); 

  while (!feof($fp)) { 

   echo fgets($fp, 128); 

  } 

  fclose($fp); 

 }

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
一个简单的自动发送邮件系统(一)
Oct 09 PHP
PHP 写文本日志实现代码
May 18 PHP
PHP学习散记_编码(json_encode 中文不显示)
Nov 10 PHP
php中使用cookie来保存用户登录信息的实现代码
Mar 08 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
thinkphp模板赋值与替换实例简述
Nov 24 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
Yii2实现自定义独立验证器的方法
May 05 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 PHP
Laravel实现短信注册的示例代码
May 29 PHP
PHP实现数组转JSon和JSon转数组的方法示例
Jun 14 PHP
ThinkPHP5.1验证码功能实现的示例代码
Jun 08 PHP
php函数与传递参数实例分析
Nov 15 #PHP
php使用glob函数快速查询指定目录文件的方法
Nov 15 #PHP
php中strtotime函数用法详解
Nov 15 #PHP
php中opendir函数用法实例
Nov 15 #PHP
php中in_array函数用法分析
Nov 15 #PHP
php中mkdir函数用法实例分析
Nov 15 #PHP
php中explode函数用法分析
Nov 15 #PHP
You might like
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
PHP实现下载断点续传的方法
2014/11/12 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
JavaScript保存并运算页面中数字类型变量的写法
2015/07/06 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
jquery select2的使用心得(推荐)
2016/12/04 Javascript
基于jQuery实现选项卡效果
2017/01/04 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
20招让你的Python飞起来!
2016/09/27 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Python中的Numpy矩阵操作
2018/08/12 Python
Python使用一行代码获取上个月是几月
2018/08/30 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
2019/06/19 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
HTML5注册页面示例代码
2014/03/27 HTML / CSS
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
美国最大的香水出口:FragranceX.com
2017/11/04 全球购物
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
求职自荐信
2013/12/14 职场文书
党员民主评议总结
2014/10/20 职场文书
2015年春节标语口号
2014/12/09 职场文书
详解JAVA中的OPTIONAL
2021/06/14 Java/Android
浅谈MySQL 亿级数据分页的优化
2021/06/15 MySQL
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL
MySql重置root密码 --skip-grant-tables
2022/04/11 MySQL