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 相关文章推荐
Banner程序
Oct 09 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
Apr 08 PHP
ThinkPHP空模块和空操作详解
Jun 30 PHP
php通过array_shift()函数移除数组第一个元素的方法
Mar 18 PHP
php实现的用户查询类实例
Jun 18 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
Nov 15 PHP
php 截取GBK文档某个位置开始的n个字符方法
Mar 08 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
Jul 19 PHP
laravel 字段格式化 modle 字段类型转换方法
Sep 30 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
Feb 03 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类中Static方法效率测试代码
2010/10/17 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
深入PHP5中的魔术方法详解
2013/06/17 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
拖拉表格的JS函数
2008/11/20 Javascript
JS 动态加载脚本的4种方法
2009/05/05 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
2016/11/24 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
Python中字符串的格式化方法小结
2016/05/03 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
浅谈Django学习migrate和makemigrations的差别
2018/01/18 Python
基于python神经卷积网络的人脸识别
2018/05/24 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
Canvas 文字碰撞检测并抽稀的方法
2019/05/27 HTML / CSS
汉语言文学毕业生求职信
2013/10/01 职场文书
手机业务员岗位职责
2013/12/13 职场文书
小学三年级数学教学反思
2014/01/31 职场文书
求职信名称怎么写
2014/05/26 职场文书
学校班班通实施方案
2014/06/11 职场文书
就业协议书样本
2014/08/20 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
四则混合运算教学反思
2016/02/23 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
如何写好活动总结
2019/06/21 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
PHP命令行与定时任务
2021/04/01 PHP
Redis安装使用RedisJSON模块的方法
2022/03/23 Redis
Python中使用tkFileDialog实现文件选择、保存和路径选择
2022/05/20 Python