解析字符串的PHP curl cookie

时间:2017-01-11 21:06:33

标签: php

我在从我执行的curl的cookie中解析正确的特定字符串时遇到问题。

这是我从cookie中解析字符串的代码。

$cookies = array();
        preg_match_all('/Set-Cookie:(?<cookie>\s{0,}.*)$/im', $page, $cookies);
        $cookie = $cookies['cookie'];
        $file = "cookie.txt";
        file_put_contents($file, $cookie);
        $token = explode('CSRF-TOKEN=', file_get_contents(realpath('.').'/cookie.txt'));
        $tokens = trim($token[1]);

然后在我将变量$ tokens包含到我的curl post数据之前,我首先通过尝试回显测试它,如果它运行良好但是我得到了这个输出。

WHac0HdIKj7lEn7dzk8YyQAAANU;path=/;secure

我得到的输出是CSRF-TOKEN的值,但我只想得到的是WHac0HdIKj7lEn7dzk8YyQAAANU。

有没有解析这个?

我希望你明白这一点。我正尽力说英语。)

2 个答案:

答案 0 :(得分:0)

改为使用'/Set-Cookie:(?<cookie>\w+)/im'

您正在使用.*$匹配任何字符一直到字符串的结尾,\w它会在最后停止匹配边界一词。

答案 1 :(得分:0)

一个快速而肮脏的解决方案(因为你已经使用了爆炸):

$tokens = trim(exlode(';path',$token[1])[0]);

但我认为应该采用更清洁,更快捷的方式(除非您出于其他原因保存cookie.txt文件)。