php - 任何将 curl 的 cookie 保存在内存中而不是磁盘上的方法

标签 php curl diskspace

我在 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/

相关文章:

php - 我把 composer.json 放在哪里

php - ePub 格式的编程书籍

c - 在 CURL 中打开文件

windows - 找出哪些文件夹和文件在 Windows 计算机上占用的空间最多?

php - 在 PhpStorm 中进行单行注释

php - Symfony 3 提交表单的动态生成不起作用

php - cURL 版本 7.64 上的 curl_multi 出现 "Could not resolve host"错误

curl - MailChimp OAuth2 访问 token

Powershell - 排除 P : Drive from foreach loop

java - 如何使用Java查找远程Linux机器的磁盘空间