2015-02-17 88 views
0

我的一位客戶要求我創建一個簡單的站點來監視另一個站點上的文件。他需要監視文件名(不確定原因?)並將它們輸出到文件中。正則表達式從源選擇div

下面是示例源代碼; http://pastebin.com/tyLUmCJr

我不會說俄語,所以我不知道該網站的內容。我很抱歉,如果它是'不適合'的東西。

無論如何,如果您滾動到第117行,您將看到一個文件名。我需要獲取所有的文件名。

我玩過DOMDocument和第三方工具,但我相信我可以使用正則表達式來提高速度。如果有人能指出我正確的方向,將不勝感激。

注意:請記住源存儲在稱爲$ content的字符串變量中。

乾杯!

+2

在您的問題中包含源代碼 – Sievajet 2015-02-17 22:10:30

+0

這是一個文件共享網站。 – 2015-02-17 22:12:50

+0

[你如何在PHP中解析和處理HTML/XML?](http://stackoverflow.com/questions/3577641/how-do-you-parse-and-process-html-xml-in-php ) – HamZa 2015-02-17 22:16:03

回答

0

經過一些更詳細,更廣泛的研究後,我找到了一個辦法。這是我如何實現的。

<?php 
    require_once("phpQuery.php"); 
    $min = isset($_GET['min']) ? $_GET['min'] : 1; 
    $max = isset($_GET['max']) ? $_GET['max'] : 2; 
    $pages = []; 
    foreach(range($min, $max) as $page) { 
     array_push($pages, iconv("CP1251", "UTF-8", file_get_contents("http://www.fayloobmennik.net/files/list/" . $page . ".html"))); 
    } 
    $html = file_get_html("http://www.fayloobmennik.net/files/list/"); 
    $elem = $html->find('div[id=info] table > tbody', 0); 
    $test = $elem->find('tr a'); 
    foreach ($test as $test2) { 
     $regex = '/<a href=\"([^\"]*)\">(.*)<\/a>/iU'; 
     $test2 = preg_match($regex, $test2, $match); 
     print_r(iconv("CP1251", "UTF-8", $match[2])); 
     echo "<br/>"; 
    } 
?> 

phpQuery.php類是simple_html_dom(我相信這就是它的名字?)。

乾杯。