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 相关文章推荐
实现dedecms全站URL静态化改造的代码
Mar 29 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
PHP 根据IP地址控制访问的代码
Apr 22 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
php封装的连接Mysql类及用法分析
Dec 10 PHP
详解WordPress开发中get_header()获取头部函数的用法
Jan 08 PHP
golang与php实现计算两个经纬度之间距离的方法
Jul 22 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
PHP里的$_GET数组介绍
Mar 22 PHP
Yii框架操作cookie与session的方法实例详解
Sep 04 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
May 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之header的不同用法总结(实例讲解)
Nov 28 #PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 #PHP
You might like
Yii操作数据库的3种方法
2014/03/11 PHP
Thinkphp调用Image类生成缩略图的方法
2015/03/07 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
php PDO属性设置与操作方法分析
2018/12/27 PHP
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
2015/12/28 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
webpack入门必知必会
2017/01/16 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
js定时器+简单的动画效果实例
2017/11/10 Javascript
微信网页登录逻辑与实现方法
2019/04/29 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
Vue中实现回车键切换焦点的方法
2020/02/19 Javascript
vue 根据选择的月份动态展示日期对应的星期几
2021/02/06 Vue.js
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
详解Python中的join()函数的用法
2015/04/07 Python
Python函数参数类型*、**的区别
2015/04/11 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
Python 类的继承实例详解
2017/03/25 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
2020/04/19 Python
服务行业个人求职的自我评价
2013/12/12 职场文书
渡河少年教学反思
2014/02/12 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
早读课迟到检讨书
2014/09/25 职场文书
经理岗位职责范本
2015/04/15 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书