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中cookie的作用域
Mar 27 PHP
PHP 缓存实现代码及详细注释
May 16 PHP
PHP笔记之:基于面向对象设计的详解
May 14 PHP
php递归删除目录与文件的方法
Jan 30 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
php检测图片主要颜色的方法
Jul 01 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
php将字符串转换为数组实例讲解
May 05 PHP
PHP后门隐藏的一些技巧总结
Nov 04 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 各种排序算法实现代码
2009/08/20 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
2017/06/06 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
Vue中正确使用jQuery的方法
2017/10/30 jQuery
深入理解vuex2.0 之 modules
2017/11/20 Javascript
Angularjs过滤器实现动态搜索与排序功能示例
2017/12/13 Javascript
vue实现将一个数组内的相同数据进行合并
2019/11/07 Javascript
JS实现图片懒加载(lazyload)过程详解
2020/04/02 Javascript
[02:08]DOTA2英雄基础教程 马格纳斯
2014/01/17 DOTA
django model去掉unique_together报错的解决方案
2016/10/18 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
超全Python图像处理讲解(多模块实现)
2020/04/13 Python
canvas画布实现手写签名效果的示例代码
2019/04/23 HTML / CSS
师范毕业生求职自荐信
2013/09/25 职场文书
工程管理专业毕业生自荐信
2014/01/24 职场文书
九年级物理教学反思
2014/01/29 职场文书
企业文明单位申报材料
2014/05/16 职场文书
学校与家长安全责任书
2014/07/23 职场文书
党员个人公开承诺书
2014/08/29 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
婚宴邀请函
2015/01/30 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
Go中的条件语句Switch示例详解
2021/08/23 Golang
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL