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 相关文章推荐
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 PHP
JS实现php的伪分页
May 25 PHP
配置Apache2.2+PHP5+CakePHP1.2+MySQL5运行环境
Apr 25 PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
Mar 23 PHP
Yii2前后台分离及migrate使用(七)
May 04 PHP
php getcwd与dirname(__FILE__)区别详解
Sep 24 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
Laravel向公共模板赋值方法总结
Jun 25 PHP
PHP实现的抓取小说网站内容功能示例
Jun 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之header的不同用法总结(实例讲解)
Nov 28 #PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
Nov 28 #PHP
You might like
php准确计算复活节日期的方法
2015/04/18 PHP
php实现的单一入口应用程序实例分析
2015/09/23 PHP
修改发贴的编辑功能
2007/03/07 Javascript
拖拉表格的JS函数
2008/11/20 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
浏览器窗口加载和大小改变事件示例
2014/02/27 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
jQuery实现的进度条效果
2015/07/15 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
JS两种类型的表单提交方法实例分析
2016/11/28 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
win7下python3.6安装配置方法图文教程
2018/07/31 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
python 直接赋值和copy的区别详解
2019/08/07 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
python实现智能语音天气预报
2019/12/02 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
《三顾茅庐》教学反思
2014/04/10 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
电子商务实训报告总结
2014/11/05 职场文书
西岭雪山导游词
2015/02/06 职场文书
少先队工作总结2015
2015/05/13 职场文书
使用 Apache 反向代理的设置技巧
2022/01/18 Servers
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android