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中的float类型使用说明
Jul 27 PHP
php 错误处理经验分享
Oct 11 PHP
THINKPHP项目开发中的日志记录实例分析
Dec 01 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
解读PHP的Yii框架中请求与响应的处理流程
Mar 17 PHP
PHP中类的继承和用法实例分析
May 24 PHP
php连接oracle数据库的方法(测试成功)
May 26 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
php apache开启跨域模式过程详解
Jul 08 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 PHP
PHP7 错误处理机制修改
Mar 09 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
做个自己站内搜索引擎
2006/10/09 PHP
做一个有下拉功能的留言版
2006/10/09 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
PHP+Mysql基于事务处理实现转账功能的方法
2015/07/08 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
页面中iframe相互传值传参
2009/12/13 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
JavaScript的作用域和块级作用域概念理解
2014/09/21 Javascript
js格式化输入框内金额、银行卡号
2016/02/01 Javascript
深入浅析JavaScript中with语句的理解
2016/05/12 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
bootstrap suggest下拉框使用详解
2017/04/10 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
JavaScript实现时间表动态效果
2017/07/15 Javascript
vue proxyTable 接口跨域请求调试的示例
2017/09/12 Javascript
AngularJS双向数据绑定原理之$watch、$apply和$digest的应用
2018/01/30 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
2018/07/23 Javascript
总结javascript三元运算符知识点
2018/09/28 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
简述Vue中容易被忽视的知识点
2019/12/09 Javascript
[01:30:15]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第二场 2月2日
2021/03/11 DOTA
Python操作Mysql实例代码教程在线版(查询手册)
2013/02/18 Python
Python中__init__.py文件的作用详解
2016/09/18 Python
Python+Turtle动态绘制一棵树实例分享
2018/01/16 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
Pycharm无法显示动态图片的解决方法
2018/10/28 Python
Python基本语法之运算符功能与用法详解
2019/10/22 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
火山咖啡:Volcanica Coffee
2019/10/29 全球购物
初入社会应届生求职信
2013/11/18 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
新员工入职欢迎词
2015/01/23 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书