PHP Curl中的cookiejar

 xhl583337984 发布于 2023-02-06 19:44

在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的"正确"方法?

1 个回答
  • 如果有多个人访问您的页面,并且您需要curl为每个人执行唯一的Cookie,那么您可以采取一些措施来处理此方案.

    1)如果您的用户已通过身份验证并且已经$_SESSION开始使用,那么您可以使用session_id()for cookie的文件名.

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

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

    但在这种情况下,如果用户在5分钟后返回给您,则无法重复使用cookie(除非您使用cookie文件名设置用户的cookie).

    对于任何一种情况,请确保定期清理这些文件.否则,您将在目录中创建大量的cookie文件.

    2023-02-06 19:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有