【发布时间】:2013-04-18 23:03:32
【问题描述】:
最新版本的 php 中是否有专门设计用于帮助完成此任务的内置函数?
【问题讨论】:
标签: php html arrays html-table
最新版本的 php 中是否有专门设计用于帮助完成此任务的内置函数?
【问题讨论】:
标签: php html arrays html-table
如果 HTML 代码干净且始终相同,则字符串替换和爆炸将起作用,只要您有新属性,它就会停止。 因此,唯一可靠的解决方案是使用正则表达式或 XML/HTML 解析器。 检查http://php.net/manual/en/book.dom.php
【讨论】:
使用原生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 对象和数组的嵌套结构(所以它不是所有数组)。你必须看看这是否符合你的需要。
【讨论】:
我不知道这是否更快,但你可以检查这个类(使用 preg_replace)
http://wonshik.com/snippet/Convert-HTML-Table-into-a-PHP-Array
【讨论】:
如果你想转换表格的 html 描述,我会这样做:
</...>) (http://php.net/manual/de/function.str-replace.php)<...>) 处拆分字符串你必须自己解决细节,因为我不知道你是否想将不同的行作为子数组处理,或者你想将所有行合并到一个大数组或其他东西中。
【讨论】:
您可以使用explode-function 将表格列和行转换为数组。
【讨论】: