如何使用PHP解析HTML表?

How to parse HTML table using PHP?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to parse and process HTML with PHP?

我需要使用PHP获取给定HTML表的第二列。我该怎么做?

参考文献:

要分析的表:http://bit.ly/ak2xay

此表的HTML代码:http://bit.ly/acdlmn


对于整洁的HTML代码,解析方法之一可以是DOM。DOM将HTML代码划分为对象,然后允许您调用所需的对象及其值/标记名等。

有关php html dom解析的官方文档,请访问http://php.net/manual/en/book.dom.php。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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];
}

?>

引用:自定义了如何解析此表并从中提取数据时提供的代码?以满足这个问题的需求。


使用phpquery http://code.google.com/p/phpquery/可以

1
2
3
4
5
$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.


这可能对你有用,甚至还有一些例子可以让你开始学习。

http://simplehtmldom.sourceforge.net网站/


也许可以看看phpquery:http://code.google.com/p/phpquery/?我自己没有用过它,所以我不能百分之百地确定它是否满足您的需要,但是由于它是jquery的服务器端实现,可以使用css选择器从DOM中进行选择,所以我认为它在您的情况下可能很有用。