www.gusucode.com > 网猫影视系统NetMao Movie 4.6.6 开源版源码程序 > upload/admin/part10.inc.php
<?php /* *###################################### * Netmao Movie 4.x - NetMao Movie System * Copyright (c) 2007-2008 NetMao.cn * For further information go to http://www.netmao.cn/ * This copyright notice must stay intact for use. *###################################### */ if(!defined('IN_NetMao') || !isset($PHP_SELF) || !preg_match("/[\/\\\\]nmadmin\.php$/", $PHP_SELF)) exit('Access Denied'); $spider = $_NCACHE['settings'][spiderfile]; $spiderfile = './templates/tools/'.$spider.'.ctrl.php'; if(!is_readable($spiderfile)) { exit("Please upload $spiderfile ."); } @include NetMao_ROOT.$spiderfile; if($action=="spider"){ nmcptpl('spider'); } if($action=="spider_multi"){ $auto = $auto ? $auto : '0'; $next = FALSE; $result = $db->query("select * from {$tablepre}codes where isok='0' limit 0,1"); $r=$db->fetch_array($result); if($r[urlid]){ $next = TRUE;$urlid = $r[urlid];$geturl = $r[url]; $code = caiji_info($geturl); nmcptpl('spider'); } if(!$next){ nmsg("采集已经全部完成","?action=spider"); } } if($action=="spider_insert"){ if($code){ preg_match_all("/<nm:([^>]+)>([\s\S]*?)<\/nm>/",$code,$matchs); for($i=0;$i<count($matchs[1]);$i++){ $labels[$matchs[1][$i]]=$matchs[2][$i]; } unset($matchs); $name=trim($labels[name]); $filecontent=trim($labels[filecontent]); $fileaddress=trim($labels[fileaddress]); if($fileaddress==''){ $db->query("UPDATE {$tablepre}codes SET code='$code',isok='1' WHERE urlid = '$urlid'"); nmsg("本次采集数据已经入库,正在进行下次采集。","?action=spider_multi&auto=$auto"); }else{ $status=count(explode("\r",$fileaddress))+1; if(is_array($labels)) foreach($labels as $c_key=>$c_val){ if($c_key!="fileaddress"){ $newcode=$newcode."<nm:$c_key>$c_val</nm>"; } } c_gengxin('c_status',$status); c_gengxin('c_urlid',$urlid); c_gengxin('c_name',$name); c_gengxin('c_info',$newcode); c_gengxin('c_fileaddress',$fileaddress); c_gengxin('c_filecontent',''); nmsg("本次采集数据已经进入缓存,正在进入子采集。","?action=spider_insert&auto=$auto"); } }else{ $data=c_huancun(); if($data[c_status] < 1){ nmsg("缓存采集数据已经入库,正在进入下次采集","?action=spider_multi&auto=$auto"); }elseif($data[c_status] == 1){ if(!$suc_urlid){ $suc_code=$data[c_info]."<nm:filecontent>".$data[c_filecontent]."</nm>"; $suc_urlid=$data[c_urlid]; nmcptpl('spider'); }else{ $db->query("UPDATE {$tablepre}codes SET code='$suc_code', isok='1' WHERE urlid='$suc_urlid'"); c_gengxin('c_status','0'); nmsg("本次采集数据已经入库,正在进入下次采集。","?action=spider_multi&auto=$auto"); } }else{ if(!$new_status){ $cur_urlid=$data[c_urlid]; $cur_fileaddress=explode("\r",$data[c_fileaddress]); $cur_xb=count($cur_fileaddress)+1-$data[c_status]; $cur_geturl=trim($cur_fileaddress[$cur_xb]); $cur_filecontent=trim(caiji_soninfo($cur_geturl)); if(($cur_filecontent=="error" || $cur_filecontent=="") && $sonerr<=2){ $sonerr = $sonerr ? $sonerr+1 : 1; nmsg("本次子采集出错,智能进行重复子采集尝试。","?action=spider_insert&auto=$auto&sonerr=$sonerr"); }elseif(($cur_filecontent=="error" || $cur_filecontent=="") && $sonerr>2){ c_gengxin('c_status','0'); nmsg("智能忽略本次采集,正在进入下次采集。","?action=spider_insert&code=error&urlid= $cur_urlid&auto=$auto"); } $new_filecontent=trim($data[c_filecontent]."\r".$cur_filecontent); $new_status=$data[c_status]-1; nmcptpl('spider'); }else{ c_gengxin('c_filecontent',$new_filecontent); c_gengxin('c_status',$new_status); nmsg("本次子采集信息已经进入缓存,正在进入下次子采集。","?action=spider_insert&auto=$auto"); } } } } function c_huancun(){ global $db,$tablepre; $query=$db->query("select * from {$tablepre}settings where variable in ('c_status','c_urlid','c_name','c_info','c_fileaddress','c_filecontent')"); while($setting = $db->fetch_array($query)) { $data[$setting['variable']] = trim($setting['value']); } return $data; } function c_gengxin($variable,$value){ global $db,$tablepre; $db->query("REPLACE INTO {$tablepre}settings (variable, value) VALUES ('$variable', '$value')"); } ?>