|
<?
#####从页码源代码中获得资料的类########
#####用法:先用取目录函数one_dir()或two_dir, 然后在分别用url_items(),get_items(),res_items()函数,
#####最后用写入数据库函数mysql()函数#####
class match
{
var $array_preg;//preg的匹配数组
var $array_ereg;//ereg的匹配数组
var $array_add;//偏移量的数组
var $array_sign;//标记数组;例如<table>(.*)</table>;如果$array_sign[0]=1代表取两者之间,如果为0代表两者都取;
var $dir;
function url_items($array_dir,$front)//取每个文件下的需要的资料(网址)集合(数组)
{
$k=0;
for($j=0;$j<count($array_dir);$j++)
{
$url_file=file($array_dir[$j]);
for($i=0;$i<count($url_file);$i++)
{
if(preg_match($this->array_preg[0],$url_file[$i]))
{
eregi($this->array_ereg[0],$url_file[$i+$this->array_add[0]],$head);
$array_url[$k++]=$front.$head[$this->array_sign[0]];
}
}
}
return $array_url;
}
function get_items($array_url)//取网址集合下的每个网址所对应的FILE文件
{
$k=0;
for($i=0;$i<count($array_url);$i++)
{
$array_file[$k++]=file($array_url[$i]);
}
return $array_file;
}
function res_items($array_file)//对每个FILE文件分析,取得想要的资料
{
$k=0;
for($j=0;$j<count($array_file);$j++)
{
for($i=0;$i<count($array_file[$j]);$i++)
{
if(preg_match($this->array_preg[1],$array_file[$j][$i]))
{
eregi($this->array_ereg[1],$array_file[$j][$i+$this->array_add[1]],$head);
$array_res[$k++]=trim($head[$this->array_sign[1]]);
}
}
}
return $array_res;
}
function mysql($server,$user,$pass,$db,$query,$array_res)//把取得的资料,存入数据库中
{
mysql_connect($server,$user,$pass);
mysql_select_db($db);
for($i=0;$i<count($array_res);$i++)
{
$query1=$query."('$array_res[$i]')";
//echo $query1.'<br>';
mysql_query($query1);
}
mysql_close();
}
function dir_one($min,$max,$type)//取目录文件方法一
{
$k=0;
for($i=$min;$i<$max;$i++)
{
$array_dir[$k++]=$this->dir.$i.".".$type;
}
return $array_dir;
}
function dir_two()//取目录文件方法二
{
$k=0;
$handle=opendir($this->dir);
while($file=readdir($handle))
{
if($file!="."&&$file!="..")
{
$array_dir[$k++]=$this->dir.$file;
}
}
closedir($handle);
return $array_dir;
}
}
?> |
|
|