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 相关文章推荐
substr()函数中文版
Oct 09 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
Oct 12 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
Aug 07 PHP
8个必备的PHP功能开发
Oct 02 PHP
详解php中反射的应用
Mar 15 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
yii框架搜索分页modle写法
Dec 19 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
php使用str_replace替换多维数组的实现方法分析
Jun 15 PHP
阿里云PHP SMS短信服务验证码发送方法
Jul 11 PHP
php图片裁剪函数
Oct 31 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
php实现查询功能(数据访问)
2017/05/23 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
用file标签实现多图文件上传预览
2017/02/14 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
最后说说Vue2 SSR 的 Cookies 问题
2018/05/25 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
详解vue2.0 资源文件assets和static的区别
2018/11/27 Javascript
VScode格式化ESlint方法(最全最好用方法)
2019/09/10 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
jQuery实现的解析本地 XML 文档操作示例
2020/04/30 jQuery
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
Python open读写文件实现脚本
2008/09/06 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
详解Python之数据序列化(json、pickle、shelve)
2017/03/30 Python
Python实现PS图像明亮度调整效果示例
2018/01/23 Python
pandas object格式转float64格式的方法
2018/04/10 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
使用Django启动命令行及执行脚本的方法
2018/05/29 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
Myprotein芬兰官网:欧洲第一运动营养品牌
2019/05/05 全球购物
System.Array.CopyTo()和System.Array.Clone()有什么区别
2016/06/20 面试题
平面设计师工作职责范文
2013/12/03 职场文书
搬家公司的创业计划书
2014/01/01 职场文书
小学生演讲稿
2014/01/12 职场文书
家电业务员岗位职责
2014/03/10 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
Vue提供的三种调试方式你知道吗
2022/01/18 Vue.js
Golang 字符串的常见操作
2022/04/19 Golang
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server