php采集函数file_get_conten应用

发布时间:2020-06-03编辑:脚本学堂
PHP中采集函数file_get_contents() 是用于将文件的内容读入到一个字符串中的首选方法,不简易使用该函数读取较大数据。
 先看一下file_get_contents的语法:

file_get_contents(path,include_path,context,start,max_length)
 
path 必需。规定要读取的文件。
include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context 可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。
start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
max_length 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。

file_get_contents()打开URL
 
下面是一个使用file_get_contents()打开URL的例子:
 
<?php
$fh= file_get_contents('http://www.jb200.com/');
echo $fh;
?>
从此例子看到,file_get_contents()打开网页后,返回的$fh是一个字符串,可以直接输出的。

一段模拟蜘蛛爬虫的PHP代码,通过一级页面得到二级页面,并在二级页面中搜索关键字,代码如下:

 

<?php  
$search=$_GET['search'];
echo $search;
 $str = file_get_contents("http://www.jb200.com");  //抓取网页
$pat = '/<a(.*?)href="(.*?)"(.*?)>(.*?)</a>/i';  //匹配模式             
preg_match_all($pat, $str, $m);     //进行正则匹配
$m_unique=array_unique($m);           //去除重复项    
foreach ($m as $value){              //获得匹配结果
foreach ($value as $val) {  
$model='/"http(.*?)"/';
preg_match($model, $val,$res);    //得出超链接
$res_unique=array_unique($res);    //去除重复项
if ($res_unique[0]!=null){        
echo $res_unique[0];
$num=$num+1; 
$pg=file_get_contents($res_unique[0]);//读入二级网页
if ($pg==null){
echo 'error';
}else {
 echo 'success';
  }
 echo "<br>";
 }
 }  
  }  
 ?>