phpcurl内存使用情况

标签 php memory curl ob-start

我有这个函数,可以从页面列表中获取 html,一旦我运行它 两个小时左右,脚本中断并显示已超出内存限制, 现在我尝试取消设置/设置为空一些变量希望释放一些内存 但这是同样的问题。你们能看一下下面的一段吗 代码? :

{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    if ($proxystatus == 'on'){
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
        curl_setopt($ch, CURLOPT_PROXY, $proxy);
    }
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($ch, CURLOPT_URL, $site);
    ob_start();
    return curl_exec($ch); // the line the script interrupts because of memory
    ob_end_clean();
    curl_close($ch);

    ob_flush();
    $site = null;
    $ch = null;

}

任何建议都将受到高度赞赏。我已经将内存限制设置为128M,但是之前 增加它(对我来说似乎不是最好的选择)我想知道是否有 在运行脚本时我可以做任何事情来使用更少的内存/释放内存。

谢谢。

最佳答案

你确实在泄漏内存。请记住,return 会立即结束当前函数的执行,因此永远不会调用所有清理操作(最重要的是 ob_end_clean()curl_close()) .

return 应该是函数执行的最后一件事。

关于phpcurl内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14687264/

相关文章:

php - 我应该如何在多个链接上存储唯一的统计信息?

php - 在php中为多个列分配多个变量

ubuntu - 如何创建库 curl-gnutls.so.4

php - 为什么 CodeIgniter 的 Curl 库比在纯 PHP 中使用 Curl 慢?

php - 如何使用 carbon php 从时间戳中获取时间

PHP 数组和选择列表

.net - 拥有多个 DLL 好还是单个大 DLL 好?

c++ - 调整嵌套 std::vector 的大小

c++ - linux会不会阻止栈和堆互相生长?

php - 我想检查此 cURL 代码中的站点是否存在?