0

我正在寻找从FASTER链接获取图像的插件或简单代码。我一直在使用 http://simplehtmldom.sourceforge.net/从给定链接中提取前 3 张图像。

simplehtmldom 非常慢,我网站上的许多用户都将其报告为问题。

如果我错了,请纠正我,我相信这个插件需要花费大量时间从我传递的 url 中获取完整的 html 代码,然后它会搜索 img 标签。

有人请建议我一种提高获取 html 代码速度的技术或我可以尝试的替代插件吗?

我在想的是获取html代码直到找到前三个img标签然后终止代码获取过程?让事情变得更快。

我不确定是否可以使用 php,但我正在努力使用 jquery 来设计它。

谢谢你的帮助 !

4

1 回答 1

3

跨站点脚本规则将阻止您在 jQuery/JS 中执行此类操作(除非您控制所有要从中获取内容的域)。在任何情况下,您所做的都不会超快,但请尝试使用与DOMDocumentfile_get_content()配对的方式编写自己的... DOMDocument方法可能比 simplehtmldom 的方法更快。getElementsByTagNamefind()

您也可以尝试正则表达式方法。它不会像真正的 DOM 解析器那样万无一失,但它可能会更快……比如:

$html = file_get_contents($url);
preg_match_all("/<img[^']*?src=\"([^']*?)\"[^']*?>/", $html, $arr, PREG_PATTERN_ORDER);

如果您想避免读取整个大文件,您还可以跳过循环file_get_contents()中的调用和子程序,fopen(); while(feof())并在从远程服务器读取每一行后检查图像。但是,如果您采用这种方法,请确保您输入的是regex整个缓冲字符串,而不仅仅是最近的一行,因为您很容易让图像的代码跨越几行。

请记住,HTML 中的实际可变性regex充其量只会成为一个不完美的解决方案,但如果速度是一个主要问题,它可能是您的最佳选择。

于 2013-01-25T17:42:42.317 回答