将html表转换为php数组的最快方法是什么?

时间:2010-08-24 06:05:55

标签: php html arrays html-table

是否有最新版本的php中的功能,专门用于帮助完成此任务?

6 个答案:

答案 0 :(得分:7)

使用像SimpleXML这样的DOM解析器将HTML代码拆分成节点,然后遍历节点以构建数组。

对于损坏/无效的HTML,SimpleHTMLDOM更宽松(但它不是内置的)。

答案 1 :(得分:1)

如果HTML代码干净且始终相同,则字符串替换和爆炸将起作用,只要您有新属性就会生效。 因此,只有可靠的解决方案才能使用正则表达式或XML / HTML解析器。 查看http://php.net/manual/en/book.dom.php

答案 2 :(得分:1)

使用原生DOM parser的替代方法可能是使用YQL。这样你就不必自己做实际的解析了。 YQL Web服务使应用程序能够在Internet上查询,过滤和组合来自不同来源的数据。

例如,使用

中给出的类示例来获取HTML表
http://www.w3schools.com/html/html_tables.asp

你可以做到

$yql = 'http://tinyurl.com/yql-table-grab';
$yql = json_decode(file_get_contents($yql));
print_r( $yql->query->results );

我已经考虑缩短了网址,因此它不会弄乱答案。 $yql实际上链接到YQL API,添加了一些选项并包含查询:

select * from html 
    where xpath="//table[@class='example']" 
    and url="http://www.w3schools.com/html/html_tables.asp"

YQL可以返回JSON和XML。我已经让它返回JSON然后对其进行解码,然后导致stdClass对象和数组的嵌套结构(因此它不是所有数组)。你必须看看它是否符合你的需要。

try out the interactive YQL console to see how it works

答案 3 :(得分:0)

我不知道这是否更快,但你可以检查这个类(使用preg_replace)

http://wonshik.com/snippet/Convert-HTML-Table-into-a-PHP-Array

答案 4 :(得分:-1)

如果你想转换表格的html描述,我会这样做:

你必须自己计算细节,因为我不知道你是否想要将不同的行作为子阵列处理,或者你想将所有行合并为一个大数组或其他东西。

答案 5 :(得分:-2)

您可以使用explode-function将表格cols和行转换为数组。

请参阅:php explode