如何从PHP文本文件中读取COOKIES

时间:2016-07-17 11:13:05

标签: php curl cookies

我在PHP中使用了CURL,请查看以下代码

frame

之后我打开了$cookie = "cookies.txt"; file_put_contents($cookie, ""); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); 文件,因为存储了cookie。

现在我如何阅读该文件以获取所需内容。

我尝试使用cookies.txt readfile读取文件,但根本没用,这些只是返回空字符串。

请帮帮我。

提前致谢

1 个答案:

答案 0 :(得分:1)

CURL在会话结束时将cookie写入文件。您的问题可能是您在CURL编写Cookie之前访问了Cookie文件。

可能的解决方法是在尝试从cookie文件中读取之前结束CURL会话

curl_easy_cleanup($ch);
...
$cookie_text = file_get_contents("cookies.txt");

See the docs.

作为一个干净的替代方案,只需直接从响应中获取Cookie,而无需通过cookies.txt文件。下面的代码会将cookie放在一个数组中:

preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $response, $matches);
$cookies = array();
foreach($matches[1] as $item) {
    parse_str($item, $cookie);
    $cookies = array_merge($cookies, $cookie);
}

从此accepted answer获取的代码: