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 相关文章推荐
文件上传的实现
Oct 09 PHP
PHP程序61条面向对象分析设计的经验小结
Nov 12 PHP
php 动态添加记录
Mar 10 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
PHP安全性漫谈
Jun 28 PHP
关于mysql字符集设置了character_set_client=binary 在gbk情况下会出现表描述是乱码的情况
Jan 06 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
PHP 微信支付类 demo
Nov 30 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
用php实现分页效果的示例代码
Dec 10 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判断浏览器的类型和语言的函数代码
2013/02/28 PHP
PHP中批量生成静态html(命令行下运行PHP)
2014/04/19 PHP
本地计算机无法启动Apache故障处理
2014/08/08 PHP
Smarty日期时间操作方法示例
2016/11/15 PHP
PHP重置数组为连续数字索引的几种方式总结
2018/03/12 PHP
PHPUnit测试私有属性和方法功能示例
2018/06/12 PHP
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
Nodejs 发送Post请求功能(发短信验证码例子)
2017/02/09 NodeJs
mac上配置Android环境变量的方法
2018/07/08 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
Angular使用Restful的增删改
2018/12/28 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
layer弹出层倒计时关闭的实现方法
2019/09/27 Javascript
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
浅析PEP572: 海象运算符
2019/10/15 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python连接mysql数据库并读取数据的实现
2020/09/25 Python
数控个人求职信范文
2014/02/03 职场文书
外国人聘用意向书
2014/04/01 职场文书
慰问敬老院活动总结
2014/04/26 职场文书
销售岗位职责范本
2014/06/12 职场文书
艺术学院毕业生自荐信
2014/07/05 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
个人工作能力自我评价
2015/03/05 职场文书
加薪通知
2015/04/25 职场文书
公司出差管理制度范本
2015/08/05 职场文书
我爱我班主题班会
2015/08/13 职场文书
2019年二手房买卖合同范本
2019/10/14 职场文书