请求某个网页,不完全返回内容,只返回部分的解决方案

php 文章 2021-06-10 12:38 11 0 全屏看文

今天想获取某个网站的title。

一般网站的title都包含在整个网页的开头那部分里,所以感觉没必要非要请求完对方网站再通过正则获取。


一般网页500kb的内容,title基本上在1k的范围里(不排除有人在title前面追加一堆meta)

image.png


所以title标签之后的内容对我来说根本没啥用,没必要都读取出来再获取。

这时候我们就可以使用如下代码来获取

<?php
	$handle = fopen("http://www.sanshu.cn/", "rb");
	if (FALSE === $handle) {
		exit("Failed to open stream to URL");
	}
	$contents = '';
	while (!feof($handle)) {
		$contents .= fread($handle, 8192);
	}
	fclose($handle);
	//对 $contents 进行正则解析的代码忽略。
?>


这样我们就可以开启一个管道,在while里进行流的独取,如果读到适合的位置,比如发现了</title>的结尾tagname我们就可以跳出循环,进行后面的解析了。

-EOF-