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强制下载类型的实现代码
Apr 21 PHP
php中设置多级目录session的问题
Aug 08 PHP
PHP中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
Sep 27 PHP
php缩放gif和png图透明背景变成黑色的解决方法
Oct 14 PHP
PHP 读取和编写 XML
Nov 19 PHP
PHP实现linux命令tail -f
Feb 22 PHP
php 生成签名及验证签名详解
Oct 26 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
Nov 12 PHP
php学习笔记之字符串常见操作总结
Jul 16 PHP
php测试kafka项目示例
Feb 06 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
多文件上传的例子
2006/10/09 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
PHP编写RESTful接口
2016/02/23 PHP
用JavaScript编写COM组件的步骤
2009/03/17 Javascript
javascript removeChild 使用注意事项
2009/04/11 Javascript
jQuery解决下拉框select设宽度时IE 6/7/8下option超出显示不全
2013/05/27 Javascript
JavaScript正则表达式之multiline属性的应用
2015/06/16 Javascript
JavaScript实现上下浮动的窗口效果代码
2015/10/12 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
小程序tab页无法传递参数的方法
2018/08/03 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
vue 兄弟组件的信息传递的方法实例详解
2019/08/30 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
微信小程序scroll-view点击项自动居中效果的实现
2020/03/25 Javascript
element-ui封装一个Table模板组件的示例
2021/01/04 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
Python的Django中django-userena组件的简单使用教程
2015/05/30 Python
浅析Python中yield关键词的作用与用法
2016/11/29 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
简单了解什么是神经网络
2017/12/23 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
党员个人思想汇报
2013/12/28 职场文书
应届实习生的自我评价范文
2014/01/05 职场文书
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
2014年标准化工作总结
2014/12/17 职场文书
2015年教研员工作总结
2015/05/26 职场文书
小学三年级班主任工作经验交流材料
2015/11/02 职场文书