我有一个 php 脚本,可以在服务器上发出一系列请求。第一个请求将是登录请求。
问题是 file_get_contents
似乎每次都创建一个新 session ,那么我怎样才能让它感知 session 呢?
这是我的函数,需要让它记住 session :
function request($method, $data, $url){
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n"."Cookie: ".session_name()."=".session_id()."\r\n",
'method' => $method,
'content' => http_build_query($data),
),
);
$context = stream_context_create($options);
session_write_close();
$result = file_get_contents($url, false, $context);
return $result;
}
最佳答案
解释为什么 cookie 在 Hazem's answer 中的 cURL 中起作用.
Author: Nate I
魔法发生在 CURLOPT_COOKIEJAR
和 CURLOPT_COOKIEFILE
上。
CURLOPT_COOKIEJAR
告诉 cURL 将所有内部已知的 Cookie 写入指定文件。在这种情况下,“cookies/cookies.txt”。对于大多数用户,通常建议使用类似 tempnam('/tmp', 'CURLCOOKIES')
这样您就可以确定可以生成此文件。
CURLOPT_COOKIEFILE
告诉 cURL 在 cURL 请求期间将哪个文件用于 Cookie。这就是为什么我们将它设置为我们刚刚将 Cookie 转储到的同一个文件。
关于php - 如何使 file_get_contents session 感知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35458993/