Php 从动态链接解析IMG
我有一项任务,就是按类名从动态链接解析IMGSRC。为此,我使用了Php 从动态链接解析IMG,php,html-parsing,Php,Html Parsing,我有一项任务,就是按类名从动态链接解析IMGSRC。为此,我使用了simple\u html\u dom.php插件。我有一个带有ref代码的数组,当我为数组的每个元素运行文件\u get\u html()函数时,会得到一个致命错误 致命错误:“路径”中允许的内存大小268435456字节已用尽(尝试分配199233536字节) 如何终止或添加到请求队列中,以便在每次请求后进程停止?我把叫作break在执行循环之后,但结果是,我得到了一个元素,而不是所有元素 简单地说:我必须解析页面,在同一页面
simple\u html\u dom.php
插件。我有一个带有ref代码的数组,当我为数组的每个元素运行文件\u get\u html()
函数时,会得到一个致命错误
致命错误:“路径”中允许的内存大小268435456字节已用尽(尝试分配199233536字节)
如何终止或添加到请求队列中,以便在每次请求后进程停止?我把叫作break在执行循环之后,但结果是,我得到了一个元素,而不是所有元素
简单地说:我必须解析页面,在同一页面中找到类并获得图像链接
parsing.php
include("simple_html_dom.php");
$all_ref_codes = ['GDJW3', 'THDP', 'PDBEF', 'BDTE']; //there is a lot of ref code in the array, more than 100-200
if($all_ref_codes) {
foreach ($all_ref_codes as $value) {
$image_url = 'https://mylink.test.com/' . $value . '/';
$html = file_get_html($image_url);
$im = $html->find('.img-class');
print_r($im );
}
}
你在说什么“排队”,这里根本就没有这回事。您的脚本只发出一个请求,处理该请求,然后才发出下一个请求。由于变量在每次迭代中都会被覆盖,因此根据您在这里处理的URL数量,这不会占用更多内存。我宁愿怀疑您在那里获取的一个结果页比其他结果页“大”,因此解析结果页实际上会消耗您的内存。@cbroe谢谢您的回答,在这种情况下,您会推荐什么方法?如果每次我都有更多的链接,每次我都必须增加php的内存,那么它现在什么时候会因为这个错误而停止?它是先处理几个URL然后消失,还是第一个URL已经消失了?@CBroe我检查过,在每次迭代中,我都为每个链接创建一个新的DOM。没用either@CBroe10-12秒后出现致命错误