如何使用PHP解析HTML表格?

13

是的,并获取列数组 - isiaatz
1
@所有人标记这个为重复的人...我没有看到那个页面上有关于解析HTML表格的任何内容。可以详细说明一下吗? - David
4个回答

22

为了使HTML代码更整洁,其中一种解析方法可以使用DOM。DOM将您的HTML代码分成对象,然后允许您调用所需的对象及其值/标记名称等。

PHP HTML DOM解析的官方文档可在http://php.net/manual/en/book.dom.php上找到。

要查找给定表格的第二列的值,可以执行以下DOM实现:

<?php
$data = file_get_contents('http://mytemporalbucket.s3.amazonaws.com/code.txt');

$dom = new domDocument;

@$dom->loadHTML($data);
$dom->preserveWhiteSpace = false;
$tables = $dom->getElementsByTagName('table');

$rows = $tables->item(1)->getElementsByTagName('tr');

foreach ($rows as $row) {
        $cols = $row->getElementsByTagName('td');
        echo $cols[2];
}

?>

参考: 根据本问题需要,对提供在如何解析此表格并从中提取数据?的代码进行了自定义。


这个数据会和你想要实现和使用它的代码在同一个文件中吗? - Filip Grebowski

1
使用 phpQuery http://code.google.com/p/phpquery/,您可以进行以下操作。
$file = LINK OR NAME OF YOUR FILE
phpQuery::newDocumentFile($file);
$data = pq('UNIQUE COLUMN ID OR CLASS AS YOU WOULD FOR CSS ex: .class #id')->html();

echo $data.

-1

如果您不打算解释如何做到这一点,那么在回顾https://dev59.com/EnA65IYBdhLWcg3w4C-j中已经给出的内容时,价值非常有限。 - Gordon
为什么要举例和解释,当提供的链接已经解释并给出了例子呢? - Geoffrey
2
因为链接可能会失效,而我们已经有了一个可以链接的规范库集合。另请参阅http://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers - Gordon

-3

或许您可以看一下 phpQuery:http://code.google.com/p/phpquery/
我自己没用过,所以无法确定它是否能够满足您的需求,但由于它是 jQuery 的服务器端实现,可以使用 CSS 选择器从 DOM 中选择元素,因此我认为它可能会对您有用。


如果您不打算解释如何做到这一点,那么在回顾https://dev59.com/EnA65IYBdhLWcg3w4C-j中已经给出的内容时,价值非常有限。 - Gordon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接