php 循环抓取网页内容(php打开URL获得网页内容,比较常用的函数是fopen()和file_get_contents)
优采云 发布时间: 2021-10-27 05:25php 循环抓取网页内容(php打开URL获得网页内容,比较常用的函数是fopen()和file_get_contents)
在php中,如果要打开网页网址获取网页内容,比较常用的函数是fopen()和file_get_contents()。如果要求不苛刻,大多数情况下这两个功能可以根据个人喜好任意选择。本文将谈谈这两个函数的用法区别以及使用时需要注意的问题。
fopen() 打开 URL
以下是使用 fopen() 打开 URL 的示例:
从这个例子可以看出,fopen()打开网页后,返回的$fh不是字符串,不能直接输出。您还需要使用 fgets() 函数来获取字符串。fgets() 函数从文件指针读取一行。文件指针必须有效并且必须指向由 fopen() 或 fsockopen() 成功打开的文件(并且尚未被 fclose() 关闭)。
可以看出 fopen() 只返回一个资源。如果打开失败,此函数返回 FALSE。
file_get_contents() 打开 URL
以下是使用 file_get_contents() 打开 URL 的示例:
从这个例子可以看出,file_get_contents()打开网页后,返回的$fh是一个可以直接输出的字符串。
通过上面两个例子的对比可以看出,使用file_get_contents()打开URL可能是更多人的选择,因为它比fopen()更简单方便。
但是,如果您正在阅读相对较大的资源,则使用 fopen() 更为合适。
知识拓展
file_get_contents() 模拟referer、cookie、使用代理等。
参考代码
ini_set('default_socket_timeout',120);
ini_set('user_agent','MSIE 6.0;');
$context=array('http' => array ('header'=>'Referer:', ),);
$xcontext = stream_context_create($context);
echo $str=file_get_contents('',FALSE,$xcontext);
指南:ini_set() 的例子和用法