1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > php 抓取远程内容 php抓取远程网页内容简单示例

php 抓取远程内容 php抓取远程网页内容简单示例

时间:2024-02-25 15:17:14

相关推荐

php 抓取远程内容 php抓取远程网页内容简单示例

本教程用php实现像asp里xmlhttp的功能一样,抓取远程网页内容.

php有好多函数可以打开远程url读取内容.但采集推荐大家用fsockopen函数,

我们先来看一下fsockopen函数的语法:

以下为引用的内容:

resource fsockopen ( string target [, int port [, int &errno [, string &errstr [, float timeout]]]]

fsockopen 连接远程主机socket端口成功后会返回一个文件句柄,就像fopen打开文件一样.然后用fgets和fputs来实现收发.

target : 为远程主机的ip地址或域名.比如.192.168.1.2或

port : 为远程主机的端口,

提供可选参数errstr时,当连接远程主机时间超过timeout时,报错errstr

下面这个例子就是用fsockopen函数来抓取远程网页内容的一个简单例子:

以下为引用的内容:

fsockopen抓取远程网页示例--

$url=""; "; //目标主机$getstr="/";

//$getstr 为域名后的参数.比如你要抓取的地址为/test.php?id=123,那么此处就是 /test.php?id=123

//如果没参数,那么就为 " / "

$fp=@fsockopen($url,80,$errno,$errstr,10);

if (!$fp){

echo "$errstr ($errno)

"; //如果打开失败,则把错误信息输出.

}

else {

fputs($fp,"GET ".$getstr." HTTP/1.1\r\nHost:\r\nConnection: Close\r\n\r\n"); //正确打开,发送请求头信息

//关于http头信息你可以参考本站的另一篇文件 HTTP协议头信息详解 while (!feof($fp)){

$data.= fgets($fp,1024); //fgets为逐行读取,后面的1024为一行最多返回多少字节的数据,可以不指定默认为1K,也就是1024字节. }

fclose($fp);

}

echo $data;

?>

这个例子是用fsockopen实现socket连接, 来读取远程网页内容.

你也可以用类似file或file_get_contents的函数来把整个文件载入到数组中或变量中.

当然一次载入,要比逐行读取挂起的可能性要大.

抓取回来的数据,你也可以加以分析,从里面提取你想得到的数据,在此就不写了.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。