我在 php 5.3.0 中做一些 cURL 工作。
我想知道是否有任何方法可以告诉 curl 句柄/对象将 cookie 保存在内存中(假设我对多个请求重用相同的句柄),或者以某种方式返回它们并让我将它们传回制作新 handle 时。
有这种长期接受的方法可以让他们进入/退出请求:
curl_setopt($ch, CURLOPT_COOKIEJAR, $filename);
curl_setopt($ch, CURLOPT_COOKIEFILE, $filename);
但是我遇到了一些场景,我需要在同一个目录中运行多个脚本副本,并且它们会相互踩踏彼此的 cookie 文件。是的,我知道我可以使用 tempnam() 并确保每次运行都有自己的 cookie 文件,但这导致了我的第二个问题。
还有一个问题是在磁盘上有这些 cookie 文件。磁盘 I/O 很慢,我敢肯定这是一个瓶颈。我不想在脚本完成后清理 cookie 文件(如果它甚至以一种让我清理它的方式退出)。
有什么想法吗?还是事情就是这样?
最佳答案
您可以使用 CURLOPT_COOKIEJAR
选项,并将文件设置为“/dev/null
”(Linux/MacOS X)或“NULL
”(Windows)。这将防止 cookie 被写入磁盘,但只要您重复使用句柄并且不调用 curl_easy_cleanup()
,它就会将它们保留在内存中。 .
关于php - 任何将 curl 的 cookie 保存在内存中而不是磁盘上的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1486099/