php采集原理和抓取远程内容最简单的教程
有人告诉我如何用php采集和抓取远程页面吗,我希望知道最简单的方便的方法,刚学习php太复杂的不适合我啊
有人告诉我如何用php采集和抓取远程页面吗,我希望知道最简单的方便的方法,刚学习php太复杂的不适合我啊
答案:1.拿下www.zzzyk.com的首页<?php
function openfile($url){if(file($url)){
$str = file($url);
$count = count($str);
$file="";
for ($i=0;$i<$count;$i++){
$file .= $str[$i];
}
return $file;
} else {die("文件打开失败!");
}
}
$getstr=openfile("http://www.zzzyk.com");
echo $getstr;?>
2.用file_get_contents()函数拿下www.zzzyk.com的首页
<?php
$getstr=file_get_contents("http://www.zzzyk.com");
echo $getstr;
?>
3.用Microsoft.XMLHTTP组件方式拿下www.zzzyk.com的首页
<?php
$url="http://www.zzzyk.com";
$xmlhttp = new COM("Microsoft.XMLHTTP") or die("无法创建Microsoft.XMLHTTP
组件!");
$xmlhttp->open("GET",$url,False, "", "");
$xmlhttp->setRequestHeader("content-Type","text/xml");$xmlhttp->send();
header('Content-Type:text/html;charset=utf-8');
$body=$xmlhttp->responseText;echo $body;
?>
其他:在默认情况下,XmlHttp 都是使用Utf-8 字符集,而我们使用的多是GB2312 字符集,这就要求我们进行GB2312到Utf-8 的转码。PHP 提供了一个可选的专码模块,可以实现多种字符集之间的相互转化。加载这个专码模块的方法如下:
- 打开PHP 配置文件php.ini,将 ;extension=php_mbstring.dll(linux 是php_mbstring.so)前的分号去掉。重新启动Apache 以后,这个模块就可以使用了。如果有错误出现,请检查扩展目录的路径设置是否正确。
- 加载这个模块以后,我们就可以使用mb_convert_encoding 函数来转码了:
<?
$utf8_string = mb_convert_encoding($gb_string, 'UTF-8', 'GB2312');
?>
将转码后的字符输出就可以看见正确显示的中文了