php simple_html_dom 一个iconv错误引起解析中断的问题,貌似内存溢出

环境:

$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(); 这中方式可能无法释放。

时间: 2024-08-02 17:58:17

php simple_html_dom 一个iconv错误引起解析中断的问题,貌似内存溢出的相关文章

错误,这个如何解决呢?内存溢出的问提。把JAVA_OPTS=&quot;-server -XX:PermSize=64M -XX:MaxPermSize=128m 还是不行

java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at org.apache.catalina.loader.WebappCla

cocos2d的一个奇葩错误

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one 运行时检查失败#0 - ESP的值在函数调用中未正确保存. 这通常是通过调用一个声明的函数的结果 解决方案:  Run-Time Check Failure #0 - The valu

java中三种常见内存溢出错误的处理方法

更多 10 相信有一定java开发经验的人或多或少都会遇到OutOfMemoryError的问题,这个问题曾困扰了我很长时间,随着解决各类问题经验的积累以及对问题根源的探索,终于有了一个比较深入的认识. 在解决java内存溢出问题之前,需要对jvm(java虚拟机)的内存管理有一定的认识.jvm管理的内存大致包括三种不同类型的内存区 域:Permanent Generation space(永久保存区域).Heap space(堆区域).Java Stacks(Java栈).其中永久保存区域主要

用maven定制一个车联网的天气预报解析项目

用maven定制一个车联网的天气预报解析项目 1:首先我们要根据之前的学习先创建一个maven项目 本实例以Gao这个项目来介绍,我们要做的功能是把车联网返回的内容解析并格式化后显示出来.车联网天气查询api地址http://developer.baidu.com/map/carapi-7.htm 在此我们需要一个开发者密钥即访问接口中的参数ak.我已经申请好,没有直接使用了,没有的童鞋可以去申请一个. 2:添加新的依赖 由于我们要解析接口默认返回的xml格式的数据,所以我们要用到一些解析xml

WDCP从php5.2升级到5.3的办法,以及升级过程中iconv错误的处理

从wdcp官方论坛我们可以找到一个询问升级的帖子,然后管理员在回复中也提供了升级方法: cd /tmp wget -c http://dl.wdlinux.cn:5180/soft/php-5.3.10.tar.gz tar zxvf php-5.3.10.tar.gz cd php-5.3.10 ./configure --prefix=/www/wdlinux/php-5.3.10 --with-config-file-path=/www/wdlinux/etc --with-mysql=/

00由于客户端检测到一个协议错误 代码0x1104

重新连接N次都还是这个错误提示,最后再重起电脑,还是没用.研究了一下错误终于解决了. 首先检查远程连接端口对不对?Windows远程默认的连接端口是3389,一般大家连接时直接输入IP或域名就可以连接了.如果还要加:端口号的话,就确定这个端口号对否? 本文适用范围 Windows系列所有系统.另,作者演示系统为Windows2003 远程连接中断代码0x1104解决方法/步骤 第1步:在桌面找到网上邻居图标,并右键打开网上邻居.或可以直接在开始菜单中的设置网络连接中同样打开. 第2步:打开使用的

自己动手实现一个简单的JSON解析器

1. 背景 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.相对于另一种数据交换格式 XML,JSON 有着诸多优点.比如易读性更好,占用空间更少等.在 web 应用开发领域内,得益于 JavaScript 对 JSON 提供的良好支持,JSON 要比 XML 更受开发人员青睐.所以作为开发人员,如果有兴趣的话,还是应该深入了解一下 JSON 相关的知识.本着探究 JSON 原理的目的,我将会在这篇文章中详细向大家介绍一个简单的JSON解析器的解析流

关于实现数据查询条件输入功能的一个低级错误

我们常常要实现检索数据的功能.复杂的查询条件输入,最好有辅助输入功能,能帮助使用者更轻松的完成查询条件输入.最近我们见到一个查询条件输入功能实现的时候犯的一个低级错误,觉得在新手中可能会典型,故拿出来说一下. 有个查询基站监控历史数据的功能,要查基站的历史数据,先得选择几个基站.第一个版本查询条件很简单,只需按站名或地区搜索基站,在结果集中选中一个或多个站,再输入其他查询条件.第二个版本,客户要求增加基站的基础信息作为查询条件,比如郊区还是市区,墙体材料等等,这些条件影响基站的冷却所需的能耗.这

关于c++primer的一个代码错误

最近看c++primer第四版的标准容器vector,讲到对vector容器的插入删除元素会使得end()的迭代器失效的问题,所以不建议程序员对end()的存储. vector<int> vec; vector<int>::iterator first=vec.begin(); while(first!=vec.end()) { first=vec.insert(first,12); first++; } 上面的这段代码来自c++primer书中,但是如果我们去运行这样的程序是不能