一尘不染

file_get_contents接收cookie

php

进行file_get_contents请求时是否可以接收由远程服务器设置的cookie ?

我需要php来执行http请求,存储cookie,然后使用存储的cookie进行第二个http请求。


阅读 337

收藏
2020-05-26

共1个答案

一尘不染

您应该cURL为此目的使用cURL实现名为cookie
jar的功能,该功能允许将cookie保存在文件中,并将其重新用于后续请求。

这里有一个简短的代码片段,介绍了如何实现:

/* STEP 1. let’s create a cookie file */
$ckfile = tempnam ("/tmp", "CURLCOOKIE");
/* STEP 2. visit the homepage to set the cookie properly */
$ch = curl_init ("http://somedomain.com/");
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);

/* STEP 3. visit cookiepage.php */
$ch = curl_init ("http://somedomain.com/cookiepage.php");
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);

注意 :必须注意,您应该已安装pecl扩展名(或用PHP编译),否则您将无法访问cURL API。

2020-05-26