PHP返回带有dom的html表的第n行

时间:2014-04-26 22:02:26

标签: php html dom html-table

我尝试使用simplehtmldom(http://simplehtmldom.sourceforge.net/)打印出表格的第n行。目前没有任何事情发生,还有什么我需要做的吗?

<?php
include 'simple_html_dom.php';
$html = file_get_html('http://www.masjid-umar.org/downloads/timetable_apr.htm');
$ret = $html->find('tr', 9);
echo $ret;
?>

2 个答案:

答案 0 :(得分:2)

假设第9行是TUE的行,您也可以使用PHP的内置DOMDocument来执行此操作,这样可以节省一些内存和解析时间,而不依赖于第三方脚本。

<?php
$html = file_get_contents('http://www.masjid-umar.org/downloads/timetable_apr.htm');
$dom = new DOMDocument();
@$dom->loadHTML($html);

//TUE 1 1 4.37 6.39 1.08 5.35 9.18 6.00 1.30 6.30 7.42 9.40                 
echo '
<table>
    <tr>';
foreach($dom->getElementsByTagName('table') as $table) {
    echo innerHTML($table->getElementsByTagName('tr')->item(9));
}
echo '
    </tr>
</table>';

function innerHTML($current){
    $ret = "";
    $nodes = @$current->childNodes;
    if(!empty($nodes)){
        foreach($nodes as $v){
            $tmp = new DOMDocument();
            $tmp->appendChild($tmp->importNode($v, true));
            $ret .= $tmp->saveHTML();
        }
        return $ret;
    }
    return;
}
?>

您还希望在网站缓慢的情况下查看缓存结果一天; p

答案 1 :(得分:1)

0是第一行,所以8是第九行:

$ret = $html->find('tr', 8);