很多朋友都想自己的cms有采集的功能,这样省时省力,今天就分享一个朋友写的采集类,我也没怎么看过,大家可以自己研究一下,如果不会,可以加QQ2387813033,一起讨论学习,或者加群252799167
<?php /** coder:[email protected] */ class GetProduct{ public $url; function __construct($url=''){ $this->url = $url; } function curl_file_get_contents(){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->url); curl_setopt($ch, CURLOPT_TIMEOUT, 60); curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_); curl_setopt($ch, CURLOPT_REFERER,_REFERER_); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $r = curl_exec($ch); curl_close($ch); return $r; } function GetAll($preg,$a='',$html=''){ if(empty($html)){ $html = $this->curl_file_get_contents(); } preg_match_all("^".$preg."^isU",$this->curl_file_get_contents(),$title); if($a===0 || !empty($a)){ return $title[$a]; }else{ return $title; } } function GetOne($preg,$a='',$html=''){ if(empty($html)){ $html = $this->curl_file_get_contents(); } preg_match("^".$preg."^isU",$html,$title); if($a===0 || !empty($a)){ return $title[$a]; }else{ return $title; } } function str_r($str){ $str = str_replace("$","",$str); $str = str_replace("<br />","<br/>",$str); $str = strip_tags($str,"<br/>"); $str = str_replace("\"","\\\"",$str); $str = str_replace("€","",$str); $str = str_replace("amp;","",$str); $str = str_replace("\r\n","",$str); return $str; } function Load($id,$allnum){ $load=round($id/$allnum*100,2)."%"; $loading = "正在采集请稍后.......".$id."/".$allnum.".......<div style=\"width:600px;border:1px solid #ccc\"><div style=\"width:".$load.";text-align:center;height:14px;font-size:14px;background-color:#999\">".$load."</div></div>"; return $loading; } function getimg($purl,$filename){ if($purl=="") { return false; } $ext=strrchr($purl,"."); if($ext!=".gif" & $ext!=".bmp" & $ext!=".jpg" & $ext!=".png" & $ext!=".GIF" & $ext!=".BMP" & $ext!=".JPG") { return false; } //$img=file_get_contents($purl) or die("í¼Æ¬′ò2»¿a"); if(file_exists($filename)) return true; /* $ctx = stream_context_create(array( 'http' => array( 'timeout' => 160 ) ) ); $img=file_get_contents($purl,0,$ctx); */ try{ $ch = curl_init(); $timeout = 11160; curl_setopt ($ch, CURLOPT_URL, $purl); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $img = curl_exec($ch); curl_close($ch); } catch(Exception $e) {return false;} if($img=="") return false; $fp=@fopen($filename,"a"); fwrite($fp,$img); fclose($fp); return true; } function Jump($id,$num){ if($id<$num){ $id++; $jump = "<script>location.href='?id=".$id."'</script>"; return $jump; }else{ return "采集完成!"; } } }
数据库类:
class Mysql{ private $host; private $user; private $pwd; function __construct($host,$user,$pwd,$db,$un="utf8"){ $this->host = $host; $this->user = $user; $this->pwd = $pwd; $this->db = $db; $this->un = $un; $this->conn(); } function conn(){ $conn = mysql_connect($this->host,$this->user,$this->pwd) or die(("ᬽó꧰ü").mysql_error()); mysql_select_db($this->db,$conn) or die("êy¾Y¿a2»′æÔú".mysql_error()); mysql_query("set character set $this->un"); mysql_query("set names $this->un"); } function select($table,$where="",$num=false){ $query = mysql_query("select * from `$table` $where"); while($row = mysql_fetch_array($query)){ $arr[] = $row; } if($num){ return $arr[0]; }else{ return $arr; } } function num_rows($table,$where=""){ $query = mysql_query("select * from `$table` $where"); $num = mysql_num_rows($query); return $num; } function insert($table,$name="",$value){ mysql_query("INSERT INTO `$table` ($name) VALUES ($value)"); } function update($table,$fn,$where=""){ mysql_query("UPDATE $table SET $fn $where"); } function close(){ return mysql_close(); } }