1、使用file_get_contents获得网页源代码
这个方法最常用,只需要两行代码即可,非常简单方便。
参考代码:
<?php
$fh=file_get_contents('http://www.yc58.com/');
echo$fh;
?>
2、使用fopen获得网页源代码
这个方法用的人也不少,不过代码有点多。
参考代码:
<?php
$fh=fopen('http://www.yc58.com/','r');
if($fh){
while(!feof($fh)){
echofgets($fh);
}
}
?>
3、使用curl获得网页源代码
使用curl获得网页源代码的做法,往往是需要更高要求的人使用,例如当你需要在抓取网页内容的同时,得到网页header信息,还有ENCODING编码的使用,USERAGENT的使用等等。
参考代码一:
<?php
//创建一个新cURL资源
$ch=curl_init();
//设置URL和相应的选项
curl_setopt($ch,CURLOPT_URL,"http://www.yc58.com/");
curl_setopt($ch,CURLOPT_HEADER,false);
//抓取URL并把它传递给浏览器
$data=curl_exec($ch);
echo$data;
//关闭cURL资源,并且释放系统资源
curl_close($ch);
?>
参考代码二:
<?php
$szUrl="http://www.yc58.com/";
$UserAgent='Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.0;SLCC1;.NETCLR2.0.50727;.NETCLR3.0.04506;.NETCLR3.5.21022;.NETCLR1.0.3705;.NETCLR1.1.4322)';
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$szUrl);
curl_setopt($curl,CURLOPT_HEADER,0);//0表示不输出Header,1表示输出
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($curl,CURLOPT_ENCODING,'');
curl_setopt($curl,CURLOPT_USERAGENT,$UserAgent);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,1);
$data=curl_exec($curl);
echo$data;
//echocurl_errno($curl);//返回0时表示程序执行成功如何从curl_errno返回值获取错误信息
exit();
?>
上例里使用了几个curl_setopt()参数的定义,HEADER、ENCODING、USERAGENT等,可以参考这里http://cn2.php.net/curl_setopt查看更多参数及用途。
需要注意的是,在使用curl_init()之前,你需要做下php.ini的安全设置,否则该函数不能执行。
|