Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从动态链接解析IMG_Php_Html Parsing - Fatal编程技术网

Php 从动态链接解析IMG

Php 从动态链接解析IMG,php,html-parsing,Php,Html Parsing,我有一项任务,就是按类名从动态链接解析IMGSRC。为此,我使用了simple\u html\u dom.php插件。我有一个带有ref代码的数组,当我为数组的每个元素运行文件\u get\u html()函数时,会得到一个致命错误 致命错误:“路径”中允许的内存大小268435456字节已用尽(尝试分配199233536字节) 如何终止或添加到请求队列中,以便在每次请求后进程停止?我把叫作break在执行循环之后,但结果是,我得到了一个元素,而不是所有元素 简单地说:我必须解析页面,在同一页面

我有一项任务,就是按类名从动态链接解析IMGSRC。为此,我使用了
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秒后出现致命错误