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 Memcached应用实现代码
Feb 08 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
php中OR与|| AND与&amp;&amp;的区别总结
Oct 26 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
Dec 25 PHP
PHP实现QQ空间自动回复说说的方法
Dec 02 PHP
验证坐标在某坐标区域内php代码
Oct 08 PHP
php PDO异常处理详解
Nov 20 PHP
PHP与jquery实时显示网站在线人数实例详解
Dec 02 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
May 04 PHP
在Laravel 中实现是否关注的示例
Oct 22 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
May 14 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
Zend framework处理一个http请求的流程分析
2010/02/08 PHP
在php和MySql中计算时间差的方法详解
2015/03/27 PHP
在Javascript中定义对象类别
2006/12/22 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
javaScript基础语法介绍
2015/02/28 Javascript
JAVA四种基本排序方法实例总结
2015/07/24 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
JS实现微信摇一摇原理解析
2017/07/22 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
tsconfig.json配置详解
2019/05/17 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
python密码错误三次锁定(实例讲解)
2017/11/14 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
12个Python程序员面试必备问题与答案(小结)
2019/06/24 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
Python环境Pillow( PIL )图像处理工具使用解析
2019/09/12 Python
python绘制封闭多边形教程
2020/02/18 Python
Django框架models使用group by详解
2020/03/11 Python
Python实现仿射密码的思路详解
2020/04/23 Python
Python私有属性私有方法应用实例解析
2020/09/15 Python
Python中Pyspider爬虫框架的基本使用详解
2021/01/27 Python
学前教育学生自荐信范文
2013/12/31 职场文书
四风存在的原因分析
2014/02/11 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
MySQL锁机制
2021/04/05 MySQL
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP