本文实例讲述了PHP实现模拟http请求的方法。分享给大家供大家参考,具体如下:
在http简析中,我们提到了浏览器请求资源的一个流程,那么这个流程能不能用php来模拟呢?答案是肯定的。
php模拟http请求需要实现以下步骤:
1.连接apache服务器
使用fsockopen:专门用于连接服务器,得到一个连接资源
2.写入http协议
使用fwrite向资源写入内容
3.接收数据
请求成功后返回的数据会被存放在资源中
4.解析数据:
使用fgets,和fgetc函数
实现代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<?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程序设计有所帮助。
原文链接:http://www.cnblogs.com/wangjingwangjing/p/5231154.html