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

  • 相关阅读:
    jmeter中response data出现乱码的解决方法
    jmeter功能摘要
    jmeter的安装目录文件
    C语言中if(a);if(!a);if(a!=0);if(a==0)有什么区别?
    python怎么连接redis(附源码)
    组管理和权限管理
    实用指令
    用户管理
    开机/重启/用户切换/注销
    vim快捷键
  • 原文地址:https://www.cnblogs.com/yuzhould/p/4578412.html
Copyright © 2020-2023  润新知