<? #####从页码源代码中获得资料的类######## #####用法:先用取目录函数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; } } ?>