gpt4 book ai didi

php - PHP Curl 中的 cookiejar

转载 作者:可可西里 更新时间:2023-10-31 22:47:55 24 4
gpt4 key购买 nike

在 PHP Curl 的情况下,当我们需要在网络抓取方面存储/读取 cookie 时,感觉那里的许多资源都鼓励使用带有这些选项的文件来处理 cookie

curl_setopt($ch, CURLOPT_COOKIEJAR, $CookieJarFilename);

curl_setopt($ch, CURLOPT_COOKIEFILE, $CookieJarFilename);

这里的底线是他们使用单个文件作为 cookiejar(通常是 .txt 文件)。

但在实际场景中,我们的网站不仅仅是一台电脑访问的,很可能有很多台电脑同时访问它,而且还有一些机器人,如Googlebots、Yahoo Slurp等。

那么,对于单个 .txt 文件,cookie jar 会覆盖相同的文本文件,让 cookie 变得一团糟,这不是很明显吗?

还是我弄错了?

处理 cookie 的“正确”方法是什么?

最佳答案

如果有多个人访问您的页面,并且您需要为每个人使用唯一的 cookie 执行 curl,那么您可以采取多种措施来处理这种情况。

1) 如果您的用户已通过身份验证并且在您这边启动了 $_SESSION,那么您可以使用 session_id() 作为 cookie 的文件名。

2) 如果您的用户不需要任何 session (例如 Google 机器人),您可以使用时间戳和一个额外的随机数作为 cookie 文件名来创建 cookie。例如:

$cookieName = time()."_".substr(md5(microtime()),0,5).".txt"; 
// Would output something like:
// `1388788940_91ab4.txt`

但在这种情况下,如果用户在 5 分钟后返回给您,则您不能重用该 cookie(除非您将用户的 cookie 设置为您的 cookie 文件名)。

无论哪种情况,请确保您定期清理这些文件。否则,您将在目录中创建大量 cookie 文件。

关于php - PHP Curl 中的 cookiejar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20896893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com