PHP读取cookie文件

2023-11-23

是否有任何帮助程序库可以读取 php.ini 中的 cookie 文件?我的本地磁盘上有一个 cookie 文件,我想要一种更好的方式来读取它。我目前只是按行读取文件并解析出值。


如果您打算阅读 Netscape 的格式(例如,curl 以这种格式将 cookies 保存在 COOKIE JAR 中),那么这非常简单。

首先是一个示例(此处添加管道和行号,并且不会出现在实际文件中):

01 | # Netscape HTTP Cookie File
02 | # http://curl.haxx.se/rfc/cookie_spec.html
03 | # This file was generated by libcurl! Edit at your own risk.
04 | 
05 | .google.com    TRUE    /   FALSE   1305843382  cookiename  the value
06 | .yahoo.com TRUE    /   FALSE   1305843382  another_cookie  it's value
07 |

如你看到的:

  1. 我们可能有注释行#作为第一个字符。
  2. 我们可能有空行

然后,每行都有 7 个标记,用制表符分隔 (\t)。 这些被定义here:

  1. 域 - 创建并且可以读取变量的域。
  2. flag - TRUE/FALSE 值,指示给定域内的所有计算机是否可以访问该变量。该值由浏览器自动设置,具体取决于您为域设置的值。
  3. path - 变量有效的域内的路径。
  4. secure - TRUE/FALSE 值,指示是否需要与域的安全连接来访问变量。
  5. 过期 - 变量过期的 UNIX 时间。 UNIX 时间定义为自 1970 年 1 月 1 日 00:00:00 GMT 以来的秒数。
  6. 名称 - 变量的名称。
  7. 值 - 变量的值。

那么,现在让我们来制作 cookie 文件解析器。

// read the file
$lines = file('path/to/cookies.txt');

// var to hold output
$trows = '';

// iterate over lines
foreach($lines as $line) {

  // we only care for valid cookie def lines
  if($line[0] != '#' && substr_count($line, "\t") == 6) {

    // get tokens in an array
    $tokens = explode("\t", $line);

    // trim the tokens
    $tokens = array_map('trim', $tokens);

    // let's convert the expiration to something readable
    $tokens[4] = date('Y-m-d h:i:s', $tokens[4]);

    // we can do different things with the tokens, here we build a table row
    $trows .= '<tr></td>' . implode('</td><td>', $tokens) . '</td></tr>' . PHP_EOL;

    // another option, make arrays to do things with later,
    // we'd have to define the arrays beforehand to use this
    // $domains[] = $tokens[0];
    // flags[] = $tokens[1];
    // and so on, and so forth

  }

}

// complete table and send output
// not very useful as it is almost like the original data, but then ...
echo '<table>'.PHP_EOL.'<tbody>'.PHP_EOL.$trows.'</tbody>'.PHP_EOL.'</table>';

最后,here是一个演示。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP读取cookie文件 的相关文章

  • 控制器 HMVC 内的 CodeIgniter 负载控制器

    我在用着http github com philsturgeon codeigniter template http github com philsturgeon codeigniter template 对于模板 我尝试将其他控制器视图
  • Laravel Redis 配置

    我目前正在使用 Laravel 和 Redis 创建一个应用程序 几乎一切都工作正常 我按照文档中的说明扩展了身份验证 用户可以订阅 登录 注销 我可以创建内容 所有内容都存储在 Redis 中 但我有一个问题 我无法运行 php arti
  • PHP 7.2 计数错误

    警告 count 参数必须是数组或对象 实现 Countable in 我在以下行中收到上述错误 if 0 gt count this gt xprop 有人可以帮助我理解这一点吗 我对 PHP 还很陌生 问题显然是 this gt xpr
  • IMAP 和 PHP - 从已发送文件夹和收件箱文件夹中获取所有电子邮件

    我正在尝试获取接收和发送的所有电子邮件 并使用 PHP 将其写入 mySQL 数据库 我使用的主机名是 hostname imap gmail com 993 imap ssl INBOX 它仅引用收件箱 并成功抓取收到的电子邮件 为了抓取
  • 显示带有 id 的内部连接的名称[重复]

    这个问题在这里已经有答案了 我有这个查询 select from countrysegments inner join country on countrysegments country id country id inner join
  • 使用 .htaccess 进行 PHP 设置时出现 500 内部服务器错误

    当我使用时 htaccess对于以下 PHP 设置 我得到500 Internal Server Error访问网站时 中的代码 htaccess file php flag display errors off php flag log
  • 如何处理PDO异常[重复]

    这个问题在这里已经有答案了 我正在尝试与PDOphp 上的类 但我在找到处理错误的正确方法时遇到了一些麻烦 我编写了以下代码
  • WordPress 子主题 -functions.php 复制 - 无法“重新声明”

    我正在使用带有儿童主题 starkers child 的 Starkers 我需要编辑functions php来声明一个菜单 所以我复制了functions php JS文件夹和external文件夹 它们都在functions文件中的某
  • 如何将值发布到输入框中?

    Intro I would like to get the current time after clicking at click and POST the value into input text box Note 假设包含引导样式表
  • Symfony/Form:函数 DoctrineType::__construct() 的参数太少

    我有一个奇怪的错误 我在自己的系统中实现了 Form 组件 我在那里创建了一个 FormType 其中使用 EntityType 作为字段 每次我想用 formBuilder 创建表单时 它都会抛出以下错误 Fatal error Unca
  • 如何从文件中获取整个函数

    好的 我现在正在逐行阅读一个文件 我知道文件中的每个函数名称 因为它是在 XML 文档中的其他位置定义的 应该是这样的 function function name 其中 function name 是函数的名称 我从 XML 文档中获取所
  • 将我的 Laravel 连接到外部数据库

    如何将 Laravel 连接到外部数据库 示例 我的本地计算机上有一个 Laravel 它在 xampp 上运行 我希望它连接到云服务器数据库 打开 env文件并编辑它 只需设置正确的外部数据库凭据 DB CONNECTION mysql
  • 重用 PDO 语句 var 会使进程崩溃

    我重用一个变量来存储两个不同的 PDO mysql 语句 stmt dbh gt prepare SELECT stmt gt execute stmt dbh gt prepare UPDATE crash here Error in o
  • Php Curl HTTP POST REQUEST 使用嵌套键值对设置自定义标头

    如何使用 Curl 在 php 中设置此标头 CustomInfo 元素是数组 嵌套键值对 AuthenticationInfo 元素是数组 嵌套键值对
  • 一次用 \r\n & \n & \r 分解字符串? [复制]

    这个问题在这里已经有答案了 我想按行分割字符串 但我希望它基于所有主要使用的换行符 n r n r 并返回一个包含每一行的数组 您可以使用正则表达式和preg split http php net preg split反而 lines pr
  • 如何处理致命错误:cURL错误7:无法连接到xxxx端口443

    我有一个连接到第三方 API 的脚本 它是并且应该在 24 7 不间断循环上运行 我在重新启动循环之前在最后使用睡眠 问题是 有时第三方 API 会被拒绝 或者连接会因以下错误而中断 致命错误 未捕获的异常 GuzzleHttp Ring
  • 使用多个 WHERE 子句更新 Codeigniter 中的批次

    我查看了 CI 用户指南来了解如何处理update batch 并且它似乎只接受一个索引来匹配要更新的行 但在我的例子中 我需要指定两个索引 例如lang and id page我一起用作索引 这样的lang en id page 115是
  • Laravel 5 命名约定

    我对 Laravel 约定有点困惑 因为我是这个框架的新手 我正在关注 Jeffrey Way 他使用的 Laracasts 视频Plural对于控制器名称 E g 页面控制器 卡片控制器 帖子控制器 但如果我参考官方文档Laravel g
  • 致命错误 - 未找到“Mongo”类

    我正在尝试执行此操作 但我收到以下错误 致命错误 在 C wamp www 中找不到类 Mongo Info PHP 5 38 MongoDB mongodb win32 i386 2 0 2 MongoDB PHP 驱动程序 mongo
  • 通过 IP 地址限制 Laravel 错误日志

    When debug被设定为true在 Laravel 的app config php有什么方法可以限制结果Whoops包含对某些 IP 地址的堆栈跟踪的错误页面 并且不在该列表中的 IP 显示特定视图 Thanks 没有内置 但是你可能可

随机推荐

  • 解决方案内的 Visual Studio 项目参考

    在解决方案中引用项目的最佳方式是什么 我通过添加引用 gt 项目添加了引用 然而 它链接到发布 DLL 或调试 DLL 我想在引用中包含项目本身 当我们编译项目时 必须编译所有引用项目 通过依赖项 这个怎么做 如果您想要引用项目本身 而不是
  • 使用 HTML 链接 rel 导入 HTML 文档

    我正在尝试使用以下命令将 HTML 文档导入到我的主文档中 但它似乎不起作用 我正在关注这个演示文稿 使用 Chrome 28 并且我已启用这两个标志about flags Enable experimental WebKit featur
  • 使用 css 设置 div 外宽度

    请问有没有办法设置outerwidth of a div using css忽略填充和边框 当我设置一个div to be 50 宽度 内边距和边框将添加到宽度中 如果没有的话我该如何解决这个问题javascript or jQuery o
  • 如果每个观测值都有新数据,我如何一次订阅 Angular2 中的多个可观测值并等待?

    我有一个角度组件 它使用 3 个服务 这些服务中的每一个都有一个我可以订阅的观察者 如果观察到的任何变化通过 websockets feathers js 发生 则必须更新组件的视图 我想要doSomethingWithTheNewData
  • 如何更新 SQL 数据库中的值? SQLite/Python

    我创建了一个表 并将数据插入到表中 我想知道如何更新 编辑数据 例如 如果我在表中有多个列 其中一列名为 age 该列的数据为 17 而我现在想用 18 替换 17 我会这样做吗下列的 import sqlite3 as lite impo
  • 为什么日期选择器中的日期显示为最后一天?

    我使用 datepicker c 角材料 这是代码 td div class input group div class input group addon div div td
  • centos libgeos 存储库丢失

    在 centos 7 3 上 最小尝试安装 shapely 或 geopandas 需要访问https github com libgeos libgeoslibgeos 尝试通过安装这个sudo yum install libgeos d
  • 没有事件参数的 EventHandler 类型

    当我们想要将数据传递给事件订阅者时 我们使用 EventArgs 或 CustomEventArgs 来实现此目的 Net 提供了一个内置类型 EventHandler 它也使用内置的 EventArgs 类的实例作为参数 当我需要通知订户
  • 将 SimpleMembership 迁移到 Identity 2.0

    这个问题已经演变 所以我更新了标题 这是原来的标题 Identity 2 UserManager Find 抛出 无效的对象名称 dbo ApplicationUser 错误 我正在从 SimpleMembership 转换为 Identi
  • JasperReport 报告中的 Excel 单元格格式

    我正在研究生成 Excel 文件的 JasperReport 报告 由于某种原因 我的单元格格式 类型不正确 例如 我的单元格中有 Date 对象 但是当我生成 Excel 文件时 它将单元格类型设置为数字 或者长整型是单元格中的文本 但单
  • “RxSwift”倒计时器

    我需要一个三十秒计时器RxSwift 这是一个重复的问题 但问题没有明确的答案 现有答案的更好方法 let countDown 15 15 seconds Observable
  • C++ 在派生类中初始化基类的 const int?

    我的基类中有一个常量 int 变量 我想在派生类中初始化响应变量 并使用不同的值 作为参数 这可能吗 这就是我所做的 Base h methods implemented in Base cpp in the actual code cla
  • hadoop 块丢失异常

    我收到以下错误 Diagnostics org apache hadoop hdfs BlockMissingException Could not obtain block BP 467931813 10 3 20 155 1514489
  • 请求安装包

    状态 已批准 但存在问题 需要采取进一步行动 我们发现您的应用存在问题 您需要按照如下所述进行检查并采取措施 以便您的应用将来不会受到影响 发现的问题 权限的使用与应用程序的核心目的没有直接关系 我们发现您的应用不符合 REQUEST IN
  • 使用 Kustomize 在 kubernetes 清单中修补列表

    我想修补 覆盖 list in 库伯内特斯体现为定制化 我正在使用 patchStrategicMerge 方法 当我修补不在列表中的参数时 修补会按预期工作 仅替换 patch yaml 中的已寻址参数 其余部分保持不变 当我修补列表时
  • SAX解析——获取文本节点的高效方法

    给定这个 XML 片段
  • JsonNullable 没有与 Jackson 序列化其值

    我正在尝试使用JsonNullable
  • .NET core 将命令行参数从 Program.cs 传递到 Startup.cs

    我正在尝试配置 kestrel 以便当它处于原始模式时它可以在特定端口上运行 然而 要做到这一点 launchsettings json 似乎需要传递命令行参数来执行此操作 因为没有直接选项 并且它始终在端口 5000 上运行 如果您有需要
  • 使用 Node.js 和 WebSocket 传输二进制文件

    我已经在谷歌上搜索这个并在 stackoverflow 上搜索了一段时间 但还没有找到解决方案 因此发表了这篇文章 出于好奇 我正在尝试使用 Node js 和 WebSockets 我正在尝试将一些二进制数据 mp3 传输到客户端 到目前
  • PHP读取cookie文件

    是否有任何帮助程序库可以读取 php ini 中的 cookie 文件 我的本地磁盘上有一个 cookie 文件 我想要一种更好的方式来读取它 我目前只是按行读取文件并解析出值 如果您打算阅读 Netscape 的格式 例如 curl 以这