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 相关文章推荐
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
常用表单验证类,有了这个,一般的验证就都齐了。
Dec 06 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
Jul 19 PHP
Thinkphp中Create方法深入探究
Jun 16 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
ThinkPHP的常用配置选项汇总
Mar 24 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
Mar 30 PHP
关于PHP求解三数之和问题详析
Nov 09 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运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
2015/01/07 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
javascript Onunload与Onbeforeunload使用小结
2009/12/31 Javascript
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
js采用map取到id集合组并且实现点击一行选中一行
2013/12/16 Javascript
js 处理数组重复元素示例代码
2013/12/27 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
详解JavaScript中的数据类型,以及检测数据类型的方法
2020/09/17 Javascript
django 自定义用户user模型的三种方法
2014/11/18 Python
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
使用NumPy和pandas对CSV文件进行写操作的实例
2018/06/14 Python
使用python根据端口号关闭进程的方法
2018/11/06 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
Keras设置以及获取权重的实现
2020/06/19 Python
详解Python中import机制
2020/09/11 Python
公司中层干部的自我评价分享
2014/03/01 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
诚信的演讲稿范文
2014/05/12 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
校运会口号
2014/06/18 职场文书
干部对照检查材料范文
2014/08/26 职场文书
学习焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
python关于集合的知识案例详解
2021/05/30 Python
nginx反向代理配置去除前缀案例教程
2021/07/26 Servers
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript