【问题标题】:How to parse HTML table using PHP? [duplicate]如何使用 PHP 解析 HTML 表格? [复制]
【发布时间】:2012-02-07 15:03:17
【问题描述】:

可能重复:
How to parse and process HTML with PHP?

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

参考资料:

要解析的表:http://bit.ly/Ak2xay

该表的HTML代码:http://bit.ly/ACdLMn

【问题讨论】:

  • 是的,得到一个列数组
  • @everyone 将此标记为重复...我在该页面上看不到任何有关解析 html TABLES 的信息。需要详细说明吗?

标签: php html


【解决方案1】:

这可能对您有用,甚至还有一些示例可以帮助您入门。

http://simplehtmldom.sourceforge.net/

【讨论】:

【解决方案2】:

也许看看 phpQuery:http://code.google.com/p/phpquery/?
我自己没有使用过它,所以我不能 100% 确定它是否符合您的要求,但由于它是 jQuery 的服务器端实现,可以从 DOM 中选择,使用 CSS 选择器,我认为它可能对您有用案例。

【讨论】:

【解决方案3】:

对于整洁的 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];
}

?>

参考:自定义How to parse this table and extract data from it?提供的代码以匹配本题的需求。

【讨论】:

  • 这是否与您要实现和使用这些数据的代码在同一个文件中?
【解决方案4】:

使用 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.

【讨论】:

    猜你喜欢
    • 2012-10-29
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-14
    • 2011-01-04
    相关资源
    最近更新 更多