以下代码处于循环状态。每个循环将$ URI更改为新地址。 我的问题是,每个过程占用越来越多的内存。PHP cURL,使用CURLOPT_RETURNTRANSFER时发生内存泄漏
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URI);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$res = curl_exec($ch);
curl_close($ch);
我终于摸索出,如果我注释掉CURLOPT_RETURNTRANSFER线泄漏停止。
我使用“CURLOPT_RETURNTRANSFER,真”,所以我可以得到cURL操作的结果作为字符串解析。但是,似乎用于存储此字符串的内存不会在每次传递时分析。 任何人都可以建议一种方法来清除此缓冲区并恢复使用的内存?有没有我可以使用的析构函数,我试过__destruct(),但似乎无法获得正确的语法。
感谢 Ç
您使用的是PHP 5.2或PHP 5.3? – 2010-12-21 11:56:27
在php5.3中可以调用函数gc_collect_cycles();你的循环中的每一个循环量 – 2010-12-21 11:57:53
谢谢。 V 5.1.6。不知道为什么它如此之低,我只是简单地把它丢弃了。 – Columbo 2010-12-21 12:06:51