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 相关文章推荐
织梦模板标记简介
Mar 11 PHP
网友原创的PHP模板类代码
Sep 07 PHP
php下尝试使用GraphicsMagick的缩略图功能
Jan 01 PHP
组合算法的PHP解答方法
Feb 04 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 PHP
微信公众号开发之微信公共平台消息回复类实例
Nov 14 PHP
php生成zip文件类实例
Apr 07 PHP
thinkPHP商城公告功能开发问题分析
Dec 01 PHP
PHP缓存工具XCache安装与使用方法详解
Apr 09 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 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
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
javascript 保存文件到本地实现方法
2012/11/29 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
js点击返回跳转到指定页面实现过程
2020/08/20 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
在vue中使用防抖函数组件操作
2020/07/26 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
[51:17]Mski vs VGJ.S Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
简明 Python 基础学习教程
2007/02/08 Python
Python入门篇之列表和元组
2014/10/17 Python
Python中运行并行任务技巧
2015/02/26 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
基于python实现KNN分类算法
2020/04/23 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
在Python3 numpy中mean和average的区别详解
2019/08/24 Python
keras用auc做metrics以及早停实例
2020/07/02 Python
c++工程师面试问题
2013/08/04 面试题
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
初中英语教学反思
2014/01/25 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
出纳会计岗位职责
2014/03/12 职场文书
2014年党员公开承诺践诺书
2014/03/25 职场文书
实习协议书
2015/01/27 职场文书
乌镇导游词
2015/02/02 职场文书
会计工作态度自我评价
2015/03/06 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
Golang 空map和未初始化map的注意事项说明
2021/04/29 Golang