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 相关文章推荐
PHP4与PHP3中一个不兼容问题的解决方法
Oct 09 PHP
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
Oct 09 PHP
PHP 多进程 解决难题
Jun 22 PHP
PHP n个不重复的随机数生成代码
Jun 23 PHP
php下关于中英数字混排的字符串分割问题
Apr 06 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
PHP 伪静态技术原理以及突破原理实现介绍
Jul 12 PHP
PHP循环结构实例讲解
Feb 10 PHP
PHP中把stdClass Object转array的几个方法
May 08 PHP
递归实现php数组转xml的代码分享
May 14 PHP
PHP实现的多文件上传类及用法示例
May 06 PHP
如何用Laravel包含你自己的帮助函数
May 27 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模板中出现空行解决方法
2011/03/08 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
php-app开发接口加密详解
2018/04/18 PHP
Laravel框架中集成MongoDB和使用详解
2019/10/17 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
jquery 插件实现多行文本框[textarea]自动高度
2015/03/04 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
node中间层实现文件上传功能
2018/06/11 Javascript
jquery检测上传文件大小示例
2020/04/26 jQuery
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
tensorflow之并行读入数据详解
2020/02/05 Python
python 录制系统声音的示例
2020/12/21 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
为什么要做架构设计
2015/07/08 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
机械制造毕业生求职信
2014/03/03 职场文书
刑事代理授权委托书
2014/09/17 职场文书
公司员工离职证明书
2014/10/04 职场文书
小学师德师风整改措施
2014/10/27 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
MySQL高速缓存启动方法及参数详解(query_cache_size)
2021/07/01 MySQL