Heim> php教程> PHP源码> Hauptteil

磁力链接打包下载

PHP中文网
Freigeben: 2016-05-23 16:38:42
Original
16983 Leute haben es durchsucht


keyWord=$keyWord; $this->saveFile=$saveFile; $this->minSize=$minSize; $this->page=$pageRange[0]; $this->maxPage=$pageRange[1]; } public function run(){ while($this->flag && $this->maxPage>$this->page){ $this->timestamp=$this->microtimeFloat(); $this->_execute(); $this->page++; $this->_notice(); } } /** * 执行 */ protected function _execute(){ $this->_getUrl(); $this->_getHtmlPage(); $this->_parseHtml(); if($this->_currentMagnetCount){//当有磁力链接时保存 $this->_save(); } } public function microtimeFloat(){ list($usec, $sec) = explode(" ", microtime()); return sprintf('%01.2f',(float)$usec + (float)$sec); } /** * 通知 */ protected function _notice(){ $currentTime = $this->microtimeFloat(); $useTime =sprintf('%01.2f', $currentTime-$this->timestamp); $this->timestamp = $currentTime; echo '第'.$this->page.'页存储了'.$this->_currentMagnetCount.'个磁力链接,耗时'.$useTime."秒\r\n"; if(!($this->flag && $this->maxPage>$this->page)){ echo '总共存储了'.$this->_magnetCount.'个磁力链接'."\r\n"; } } /** * 设置url */ protected function _getUrl(){ $this->_url = $this->host.'search?q='.rawurlencode($this->keyWord).'&p='.$this->page; } /** * 获得html文件内容 */ protected function _getHtmlPage(){ $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_TIMEOUT,$this->timeout); curl_setopt($ch, CURLOPT_URL, $this->_url); curl_setopt($ch, CURLOPT_SSLVERSION,3); $result = curl_exec($ch); if($result === false){ //echo 'Curl error: '. curl_errno($ch) .' : '. curl_error($ch); $opts = array( 'https'=>array( 'method'=>"GET", 'timeout'=>$this->timeout,//单位秒 ) ); $context = stream_context_create($opts); $this->_html = @file_get_contents($this->_url,false,$context); }else{ $this->_html = $result; } curl_close($ch); } /** * 抓取磁力链接 */ protected function _parseHtml(){ preg_match_all('/href="(magnet\:\?xt=urn\:btih\:.+?)"/',$this->_html,$magnet); preg_match_all('/attr_val">(\d+?\.?\d*? [G|M|K]B)/',$this->_html,$size); if(empty($size[1])){ $this->flag=false;//当获取磁力链接时不到时,停止翻页 } foreach($size[1] as $key=>$val){ if($this->_compareSize($val)){ $this->_magnet[]=$magnet[1][$key]; } } $this->_currentMagnetCount = count($this->_magnet); $this->_magnetCount += count($this->_magnet); } /** * 比较磁力链接文件的大小 */ protected function _compareSize($size){ $number = substr($size,0,strpos($size,' ')); $unit = substr($size,strpos($size,' ')+6); $n=''; switch($unit){ case 'GB': $n=1; break; case 'MB': $n=1024; break; case 'KB': $n=1048576; break; default : $n=false; } if($n===false){ try { throw new Exception("文件大小单位识别失败\n"); } catch (Exception $e) { echo $e->getMessage(); return false; } } return ( $this->minSize < ($number/$n) ); } /** * 把磁力链接保存到文件中 */ protected function _save(){ $data = ''; foreach($this->_magnet as $val){ $data .= $val."\n"; $this->magnetNum++; if(0==$this->magnetNum%15) $data.="\n\n"; } file_put_contents($this->saveFile,$data,FILE_APPEND); $this->_magnet=array(); } } //示例 $s = new Magnet('LOL','magnet.log',2,array(0,10)); $s->run();
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!