2015-02-17 131 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(我相信这就是它的名字?)。

干杯。