QueryList::html的内存溢出问题

发布于 2022-09-11 21:10:41 字数 1623 浏览 16 评论 0

//采集规则
        $reg  = [
            'detail_link' => ['.deanarticec>.deanarticer>.deanarticername>a', 'href'],
            //采集文章标题
            'title'       => ['.deanarticec>.deanarticer>.deanarticername>a', 'text'],
            'image'       => ['.deanarticec>.deanarticel>.atc>a>img', 'src'],
            'brief'       => ['.deanarticer>.deanarticersummary', 'text', '-a -.content_copyright -script'],
        ];
        $rang = '.deanartice>ul>li';
        
$data = QueryList::html(file_get_contents('test.html'))->rules($reg)->range($rang)->queryData(function ($item) {
                if ($item['image'] != "" && $item['image'] != "template/dean_hotspot_141011/deancss/nopic.jpg") {
                    $item['image'] = 'http://ecigm.com' . $item['image'];
                }
//                $item['title'] = mb_convert_encoding($item['title'], 'utf-8', 'gbk');
//                $item['new_brief'] = mb_convert_encoding(strip_tags($item['brief']), 'HTML-ENTITIES');
                return $item;
            });

这段代码是可以直接运行的,执行php artisan catch:name 执行会遇上Segmentation fault: 11这个C++内存问题,原因是无限的递归导致爆栈而出现的报错。

其中$html的内容可以打开http://ecigm.com/bk/dt/index....,来进行调试。

关于内存缘故请看:http://www.laruence.com/2011/...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文