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 相关文章推荐
深入理解用mysql_fetch_row()以数组的形式返回查询结果
Jun 05 PHP
分享下页面关键字抓取components.arrow.com站点代码
Jan 30 PHP
php内存缓存实现方法
Jan 24 PHP
php返回字符串中所有单词的方法
Mar 09 PHP
PHP使用ODBC连接数据库的方法
Jul 18 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
详解YII关联查询
Jan 10 PHP
Symfony2函数用法实例分析
Mar 18 PHP
php微信公众平台开发(四)回复功能开发
Dec 06 PHP
php数组实现根据某个键值将相同键值合并生成新二维数组的方法
Apr 26 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 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
PHP实现用户认证及管理完全源码
2007/03/11 PHP
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
php中使用Imagick实现图像直方图的实现代码
2011/08/30 PHP
PHP 二维数组和三维数组的过滤
2016/03/16 PHP
js 操作css实现代码
2009/06/11 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
text-align:justify实现文本两端对齐 兼容IE
2015/08/19 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
jquery ztree实现树的搜索功能
2016/02/25 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
JavaScript订单操作小程序完整版
2017/06/23 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
详解axios 全攻略之基本介绍与使用(GET 与 POST)
2017/09/15 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
vue项目webpack中Npm传递参数配置不同域名接口
2018/06/15 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
详解ES6 中的Object.assign()的用法实例代码
2021/01/11 Javascript
[04:36]DOTA2国际邀请赛 ti3精彩集锦
2013/08/19 DOTA
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
python读写csv文件的方法
2019/08/13 Python
Python在OpenCV里实现极坐标变换功能
2019/09/02 Python
tensorflow 模型权重导出实例
2020/01/24 Python
tensorflow图像裁剪进行数据增强操作
2020/06/30 Python
通俗讲解python 装饰器
2020/09/07 Python
用Python实现职工信息管理系统
2020/12/30 Python
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
什么是servlet
2012/05/08 面试题
陈安之励志演讲稿
2014/08/21 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
办公室规章制度范本
2015/08/04 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android