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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
php若干单维数组遍历方法的比较
Sep 20 PHP
PHP 数组和字符串互相转换实现方法
Mar 26 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 PHP
php自定义apk安装包实例
Oct 20 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
Nov 22 PHP
php获取文件后缀的9种方法
Mar 22 PHP
php字符串操作常见问题小结
Oct 11 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
Yii 2.0如何使用页面缓存方法示例
May 23 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 Squid中可缓存的动态网页设计
2008/09/17 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
OfflineSave离线保存代码再次发布使用说明
2007/05/23 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
JavaScript封装单向链表的示例代码
2020/09/17 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
王纯业的Python学习笔记 下载
2007/02/10 Python
Python2.x与Python3.x的区别
2016/01/14 Python
Python中使用platform模块获取系统信息的用法教程
2016/07/08 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
python 连接sqlite及简单操作
2017/06/30 Python
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
tensorflow: variable的值与variable.read_value()的值区别详解
2018/07/30 Python
Linux下python3.7.0安装教程
2018/07/30 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
Cole Haan官方网站:美国时尚潮流品牌
2017/12/06 全球购物
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
纪检干部先进事迹材料
2014/08/23 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
民主评议教师党员自我评价
2015/03/04 职场文书
PostgreSQL解析URL的方法
2021/08/02 PostgreSQL
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js