$v ){ $arr = array(); // 种子基本信息处理 // 偏移量 $offset = strpos($v,self::downloadPrefix); // 截取 $urlTemp = substr($v,$offset,$len); // 种子地址 $arr['url'] = substr($urlTemp,0,strpos($urlTemp,$downloadStrEnd)); // 种子id $arr['id'] = substr($arr['url'],$downloadStrLen); // 获取主标题 // 偏移量 $h1_offset = strpos($v, ' 0){ //存在副标题 $titleTemp = substr($v, $h2_offset, $h2_len); $titleSpan = ''; $title = selector::remove($titleTemp, "//span"); // 精确适配标签 begin $span = selector::select($titleTemp, '//span'); if(!empty($span)){ if(is_array($span)){ // 查询促销时间特征 if(strpos($title, self::$proTime) != false){ $key = count($span); // 替换占位符 $title = str_replace('',$span[$key-1],$title); // 适配 unset($span[$key-1]); } foreach ( $span as $vv ){ $titleSpan.='['.$vv.'] '; } }else{ // 查询促销时间特征 if(strpos($title, self::$proTime) != false){ // 替换占位符 $title = str_replace('',$span,$title); }else { $titleSpan.='['.$span.'] '; } } } // 精确适配标签 end $arr['title'] = $titleSpan . $title; #echo $arr['title']; }else { $arr['title'] = ''; } // 组合返回数组 self::$TorrentList[$k]['id'] = $arr['id']; self::$TorrentList[$k]['h1'] = $arr['h1']; self::$TorrentList[$k]['title'] = isset( $arr['title'] ) && $arr['title'] ? $arr['title'] : ''; self::$TorrentList[$k]['details'] = self::HOST.self::detailsPrefix.$arr['id']; self::$TorrentList[$k]['download'] = self::HOST.$arr['url']; self::$TorrentList[$k]['filename'] = $arr['id'].'.torrent'; // 种子促销类型discount if(strpos($v,self::$getTorrent[0]) === false){ // 不免费 self::$TorrentList[$k]['type'] = 1; // 非免费,是否需要获取扩展信息 //continue; }else{ // 免费种子 self::$TorrentList[$k]['type'] = 0; } // 是否置顶sticky self::$TorrentList[$k]['sticky'] = strpos($v,self::$sticky)===false ? 0 : 1; // 优惠剩余时间proTime(可选) // 存活时间added(必有) $added = selector::select($v, '@@', "regex"); self::$TorrentList[$k]['time'] = $added; #p($added); /* Array ( [0] => "2019-11-20 15:01:17">3天22时 [1] => "2014-09-24 00:09:20">5年
2月 ) string "2016-04-24 15:43:25">3年
7月 */ $options = selector::select($v, "//*[@class='rowfollow']"); #p($options); /* $options = Array ( [0] =>
0 [1] => 7.11
GB [2] => 1 [3] => 105 [4] => 0 [5] => 0% [6] => r9ruibuDonor ) 对应的: [0] => 评论 [1] => 大小size [2] => 种子数seeders [3] => 下载数leechers [4] => 完成数 [5] => 完成进度 [6] => 发布者 */ // 0 评论comments self::$TorrentList[$k]['comments'] = selector::select($options[0], "//a"); // 1 大小size self::$TorrentList[$k]['size'] = str_replace('
','',$options[1]); // 2 种子数seeders if ( empty($options[2]) ) { $seeders = 0; } else { if( strpos($options[2],'') === false ){ if ( strpos($options[2],'') === false ) { // 普通特征 $seeders = selector::select($options[2], "//a"); } else { // 新种 0做种特征 $seeders = selector::select($options[2], "//span"); } }else{ // 新种 1做种特征 $seeders = selector::select($options[2], "//font"); } } self::$TorrentList[$k]['seeders'] = $seeders; // 3 下载数leechers self::$TorrentList[$k]['leechers'] = empty($options[3]) ? 0 : selector::select($options[3], "//a"); // 4 完成数completed self::$TorrentList[$k]['completed'] = empty($options[4]) ? 0 : selector::select($options[4], "//b"); // 5 完成百分比percentage self::$TorrentList[$k]['percentage'] = strpos($options[5],'') === false ? $options[5] : selector::select($options[5], "//b"); // 6 发布者owner $owner = selector::select($options[6], "//b"); self::$TorrentList[$k]['owner'] = empty($owner) ? '匿名' : $owner; #exit(0); } return self::$TorrentList; } }