|
PHP抓取远程网站数据的代码 现在可能还有很多程序爱好者都会遇到同样的疑问,就是要如何像搜索引擎那样去抓取别人网站的HTML代码,然后把代码收集整理成为自己有用的数据!今天就等我介绍一些简单例子吧. Ⅰ.抓取远程网页标题的例子: 以下是代码片段: <?php
/*
+-------------------------------------------------------------
+抓取网页标题的代码,直接拷贝本代码片段,另存为.php文件执行即可.
+-------------------------------------------------------------
*/
error_reporting
(7);
$file = fopen ("http://www.php.cn/", "r");
if (!$file) {
echo "<font color=red>Unable to open remote file.</font>
";
exit;
}
while (!feof ($file)) {
$line = fgets ($file, 1024);
if (eregi ("<title>(.*)</title>", $line, $out)) {
$title = $out[1];
echo "".$title."";
break;
}
}
fclose($file);
//End
?>Ⅱ.抓取远程网页HTML代码的例子: 以下是代码片段: <? php
/*
+----------------
+DNSing Sprider
+----------------
*/
$fp = fsockopen("www.php.cn", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br/>
";
} else {
$out = "GET / HTTP/1.1
";
$out .= "Host:www.php.cn
";
$out .= "Connection: Close
";
fputs($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
//End
?>以上两个代码片段都直接Copy回去运行就知道效果了,上面的例子只是抓取网页数据的雏形,要使其更适合自己的使用,情况有各异.
fopen() 将 file 指定的名字资源绑定到一个流上. 返回文件大小的字节数,如果出错返回 FALSE. 注: 因为 PHP 的是有符号的,并且大多数平台使用 32 位整数,filesize() 函数在碰到大于 2GB 的文件时可能会返回非预期的结果.对于 2GB 到 4GB 之间的文件通常可以使用 sprintf("%u", filesize($file)) 来克服此问题. fread() 从文件指针 handle 读取最多 length 个字节. 该函数在读取完 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时就会停止,视乎先碰到哪种情况. 说明:低版本用法!建议php5用 file_get_contents -- 将整个文件读入一个 string file_get_contents ( string filename [, int use_include_path [, resource context]]) 和 file() 一样,只除了 file_get_contents() 将文件返回为一个字符串. file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法.如果操作系统支持还会使用内存映射技术来增强性能. 以上就是php如何读取或者抓取远程代码实例详解的详细内容,更多请关注php中文网其它相关文章! |