博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php simple_html_dom 一个iconv错误引起解析中断的问题,貌似内存溢出
阅读量:6320 次
发布时间:2019-06-22

本文共 1000 字,大约阅读时间需要 3 分钟。

环境:

$pageNum = 8;

for ($i = 1; $i < $pageNum; $i++) {
$html = new simple_html_dom();
$host = 'http://xxxxxx';
$url = sprintf ($this->urlFormat, $i);
$html->load_file($url);
echo "<br>" . $i . "start1 ".$url."<br>";
$mainHtml = $html->find('div[class=main]', 0);
...

...

$html->clear();

unset($html);

}

循环出现错误

Notice: iconv(): Detected an illegal character in input string in D:\Workspace\PHP\admin_data\simple_html_dom.php on line 790

然后下一个循环就会中断停止,不再正常运行,$html->load_file($url);将失败,之后如下提示

Fatal error: Call to a member function find() on a non-object in D:\Workspace\PHP\admin_data\simple_html_dom.php on line 1113

完了后面解析我无法再完成了。

谷粉+百度,关于iconv修改的尝试都是老样子。

之后已经想到可能是$html没有释放的问题,又搜了一会,使用将$html = new simple_html_dom();替换为如下代码,解决

$html = new simple_html_dom();    //干掉不需要

$host = 'http://xxxxxx';
$url = sprintf ($this->urlFormat, $i);
$html = file_get_html($url);

其他照旧,终于iconv()即使失败,也能继续解析了。也就是可下这个结论如果在解析中途出错,$html = new simple_html_dom(); 这中方式可能无法释放。

转载于:https://www.cnblogs.com/yuzhould/p/4578412.html

你可能感兴趣的文章
新书问答:Agile Management
查看>>
react入门
查看>>
VUE高仿饿了么app
查看>>
针对Kubernetes软件栈有状态服务设计的思考
查看>>
第八章 进程间通信
查看>>
CentOS 7 巨大变动之 firewalld 取代 iptables
查看>>
教你如何使用Flutter和原生App混合开发
查看>>
订单的子单表格设置颜色
查看>>
lvs fullnat部署手册(三)rs内核加载toa篇
查看>>
iframe 在ie下面总是弹出新窗口解决方法
查看>>
android编译系统makefile(Android.mk)写法
查看>>
MD5源代码C++
查看>>
Eclipse 添加 Ibator
查看>>
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
查看>>
Python编程语言
查看>>
十四、转到 linux
查看>>
Got error 241 'Invalid schema
查看>>
ReferenceError: event is not defined
查看>>
男人要内在美,更要外在美
查看>>
为什么要跟别人比?
查看>>