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 相关文章推荐
关于PHP中的Class的几点个人看法
Oct 09 PHP
PHP 七大优势分析
Jun 23 PHP
php 常用类汇总 推荐收藏
May 13 PHP
php图片加水印原理(超简单的实例代码)
Jan 18 PHP
php批量上传的实现代码
Jun 09 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
Aug 21 PHP
php中的mongodb select常用操作代码示例
Sep 06 PHP
关于URL最大长度限制的相关资料查证
Dec 23 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
PHP实现八皇后算法
May 06 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 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垃圾代码优化操作代码
2010/08/05 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
Yii2 hasOne(), hasMany() 实现三表关联的方法(两种)
2017/02/15 PHP
laravel 解决Validator使用中出现的问题
2019/10/25 PHP
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
jQuery+ajax实现动态执行脚本的方法
2015/01/27 Javascript
jQuery实现菜单式图片滑动切换
2015/03/14 Javascript
js实现简单计算器
2015/11/22 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
JavaScript中 ES6 generator数据类型详解
2016/08/11 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
详解Angular的数据显示优化处理
2016/12/26 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
详解webpack + react + react-router 如何实现懒加载
2017/11/20 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
vue 之 css module的使用方法
2018/12/04 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
Python开发微信公众平台的方法详解【基于weixin-knife】
2017/07/08 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
python银行系统实现源码
2019/10/25 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
万年牢教学反思
2014/02/15 职场文书
政治表现评语
2014/05/04 职场文书
《山中访友》教学反思
2016/02/24 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python