zoukankan      html  css  js  c++  java
  • 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:WorkspacePHPadmin_datasimple_html_dom.php on line 790

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

    Fatal error: Call to a member function find() on a non-object in D:WorkspacePHPadmin_datasimple_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(); 这中方式可能无法释放。

  • 相关阅读:
    两种序列化方式Serializable和Parcelable
    函数初识
    编码理解
    分享------关于复合赋值运算符
    pycharm 设置鼠标控制字体大小
    Mac下python3的安装和PyCharm中python3的使用
    python编码问题总结
    python----编码详解
    python基础二
    python 基础一
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4578412.html
Copyright © 2011-2022 走看看