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 相关文章推荐
攻克CakePHP系列一 连接MySQL数据库
Oct 22 PHP
php 异常处理实现代码
Mar 10 PHP
php提示undefined index的几种解决方法
May 21 PHP
在windows服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
php将session放入memcached的设置方法
Feb 14 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
php数组键值用法实例分析
Feb 27 PHP
PHP数组和explode函数示例总结
May 08 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
PHP实现生成模糊图片的方法示例
Dec 21 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 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实现的二分查找算法实例分析
Dec 19 #PHP
PHP实现git部署的方法教程
Dec 19 #PHP
You might like
php google或baidu分页代码
2009/11/26 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
php设计模式 Visitor 访问者模式
2011/06/28 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
js操作数组函数实例小结
2015/12/10 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
[01:07:19]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第一场
2018/04/06 DOTA
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
Python复制目录结构脚本代码分享
2015/03/06 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
django加载本地html的方法
2018/05/27 Python
Python中反射和描述器总结
2018/09/23 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
Python 如何提高元组的可读性
2019/08/26 Python
python字符串的拼接方法总结
2019/11/18 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
详解如何使用CSS3中的结构伪类选择器和伪元素选择器
2020/01/06 HTML / CSS
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
决定成败的关键——创业计划书
2014/01/24 职场文书
党校培训自我鉴定
2014/02/01 职场文书
慰问信格式
2015/02/14 职场文书
自书遗嘱范文
2015/08/07 职场文书
500字作文之关于爸爸
2019/11/14 职场文书
centos环境下nginx高可用集群的搭建指南
2022/07/23 Servers