我怀疑哪一个处理速度更快?
使用curl函数的dom文件或preg_match_all在html页面解析中更快?将dom文件功能留在其他服务器上如curl函数吗?例如,在curl函数中,我们使用用户代理来定义谁正在访问,但在dom文档中没有任何内容。答案 0 :(得分:5)
如果一个人给你不正确的结果,哪个更快更重要?
与正则表达式匹配以从文档中获取单个数据将比解析整个HTML文档更快。但正则表达式无法在所有情况下正确解析HTML。
请参阅http://htmlparsing.com/regexes.html,我已开始解决这个常见问题。 (对于其他人来说,我可以使用帮助。源代码在github上,我需要许多不同语言的示例。)
答案 1 :(得分:1)
正则表达式可能会更快,但它们也可能是更糟糕的选择。除非您对应用程序进行了基准测试和分析,并且没有发现任何其他优化内容,否则您应该查看正确的现有解析器。
虽然正则表达式可用于匹配HTML,it takes a thorough effort to come up with a reliable parser。 PHP offers a bunch of native extensions to work with XML(和HTML)可靠。还有许多第三方图书馆。见我的回答
对于发送自定义用户代理,也可以使用DOM。您必须create a custom stream context和attach it with the underlying libxml functions。您可以提供任何available HTTP Stream context options this way。见我的回答
有关如何提供自定义UserAgent的示例。
答案 2 :(得分:0)
dom函数与html提取没有任何关系。
然而,有些加载函数可用于直接获取http资源。
如果没有上下文参数,它们将显示与file_get_contents相同的行为。
关于你问题的其他部分。 preg函数更快。但是它们并不适用于那种用途,你很可能很遗憾很快就会将它们用于此目的。
如果你用正则表达式解析html,那么你要么完全疯狂,要么就是没有得到html的概念。