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来实现网络服务
Sep 15 PHP
php中使用array_filter()函数过滤空数组的实现代码
Aug 19 PHP
linux中cd命令使用详解
Jan 08 PHP
PHP 错误处理机制
Jul 06 PHP
PHP执行SQL文件并将SQL文件导入到数据库
Sep 17 PHP
Zend Framework教程之Resource Autoloading用法实例
Mar 08 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
使用ThinkPHP生成缩略图及显示
Apr 27 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
用php+ajax新建流程(请假、进货、出货等)
Jun 11 PHP
php中请求url的五种方法总结
Jul 13 PHP
PHP读取Excel内的图片(phpspreadsheet和PHPExcel扩展库)
Nov 19 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
php microtime获取浮点的时间戳
2010/02/21 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
php实现简单的MVC框架实例
2015/09/23 PHP
php实现微信发红包
2015/12/05 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
第一章之初识Bootstrap
2016/04/25 Javascript
Vue实现内部组件轮播切换效果的示例代码
2018/04/07 Javascript
简单的三步vuex入门
2018/05/20 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
[38:31]完美世界DOTA2联赛PWL S3 Magma vs GXR 第一场 12.13
2020/12/17 DOTA
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
Python在不同目录下导入模块的实现方法
2017/10/27 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
pycharm远程调试openstack代码
2017/11/21 Python
Django中url的反向查询的方法
2018/03/14 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
python安装pil库方法及代码
2019/06/25 Python
Django多数据库的实现过程详解
2019/08/01 Python
Python Flask框架实现简单加法工具过程解析
2020/06/03 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
美国演唱会和体育门票购买网站:Ticketnetwork
2018/10/19 全球购物
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
控制工程专业个人求职信
2013/09/25 职场文书
青年教师培训方案
2014/02/06 职场文书
勿忘国耻9.18演讲稿(经典篇)
2014/09/14 职场文书
重阳节演讲稿:尊敬帮助老人 弘扬传统美德
2014/09/25 职场文书
小学班主任个人总结
2015/03/03 职场文书
Python爬虫之自动爬取某车之家各车销售数据
2021/06/02 Python
PyTorch中permute的使用方法
2022/04/26 Python
安装harbor作为docker镜像仓库的问题
2022/06/14 Servers