PHP实现模拟http请求的方法分析


Posted in PHP onDecember 20, 2017

本文实例讲述了PHP实现模拟http请求的方法。分享给大家供大家参考,具体如下:

在http简析中,我们提到了浏览器请求资源的一个流程,那么这个流程能不能用php来模拟呢?答案是肯定的。

php模拟http请求需要实现以下步骤:

1.连接apache服务器

使用fsockopen:专门用于连接服务器,得到一个连接资源

2.写入http协议

使用fwrite向资源写入内容

3.接收数据

请求成功后返回的数据会被存放在资源中

4.解析数据:

使用fgets,和fgetc函数

实现代码:

<?php
  //php模拟发出http请求
  //1.连接目标服务器apache
  $f=fsockopen('localhost',98,$erron,$error);
  //2.写入http协议
  //2.1拼凑http协议
  //请求行
  $http="GET /phpstudy/index.php HTTP/1.1\r\n";
  //请求头
  $http .="Host:localhost\r\n";
  //空行
  $http .="\r\n";
  //2.2写给apache服务器
  if(fwrite($f,$http))
  {
    //写入成功
    //3.数据已经接收并存放在f资源中
    //4.解析资源
    //循环遍历
    while($line=fgets($f,1024))
    {
      //输出
      echo $line ."</br>";
    }
  }

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

PHP 相关文章推荐
第六节 访问属性和方法 [6]
Oct 09 PHP
推荐一篇入门级的Class文章
Mar 19 PHP
40个迹象表明你还是PHP菜鸟
Sep 29 PHP
PHP编程过程中需要了解的this,self,parent的区别
Dec 30 PHP
php命令行用法入门实例教程
Oct 27 PHP
php实现两个数组相加的方法
Feb 17 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
laravel学习教程之存取器
Jul 30 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
May 28 PHP
Swoole实现异步投递task任务案例详解
Apr 02 PHP
php封装db类连接sqlite3数据库的方法实例
Dec 19 #PHP
PHP性能分析工具xhprof的安装使用与注意事项
Dec 19 #PHP
PHP实现的最大正向匹配算法示例
Dec 19 #PHP
PHP实现的字符串匹配算法示例【sunday算法】
Dec 19 #PHP
PHP实现的折半查找算法示例
Dec 19 #PHP
PHP实现的二分查找算法实例分析
Dec 19 #PHP
PHP实现git部署的方法教程
Dec 19 #PHP
You might like
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
通用于ie和firefox的函数 GetCurrentStyle (obj, prop)
2006/12/27 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
javascript 获取浏览器版本
2015/01/21 Javascript
原生js实现图片轮播特效
2015/12/18 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
老生常谈jquery中detach()和remove()的区别
2017/03/02 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
vue.js前后端数据交互之提交数据操作详解
2018/04/24 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
Vue实现一个图片懒加载插件
2019/03/11 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
python 计算文件的md5值实例
2017/01/13 Python
详谈Python基础之内置函数和递归
2017/06/21 Python
Python最小二乘法矩阵
2019/01/02 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
清除canvas画布内容(点擦除+线擦除)
2020/08/12 HTML / CSS
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
六月份红领巾广播稿
2014/02/03 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
委托书范本
2014/04/02 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
2015年国庆节活动总结
2015/03/23 职场文书
人代会简报
2015/07/21 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
javascript遍历对象的五种方式实例代码
2021/10/24 Javascript