php - 如何使 file_get_contents session 感知?

标签 php http web backend

我有一个 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_COOKIEJARCURLOPT_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/

相关文章:

php - 在哪里设置 PHP $_SERVER ['DOCUMENT_ROOT' ] Trailing Slash?

php - 如何在客户端存储一个php数组?

c++ - 如何在不使用套接字的情况下在 C++ 中发送 POST 请求

asp.net - response.redirect 总是一个 http GET 响应吗?

vb.net - VB 2013文本框: Replace space with "+"

java - 如何使用java读取某个URL的xml文件?

php - 如何在服务器上找到我的根目录?

php - 如何过滤或删除空值,以便显示没有同义词匹配的单词?

php - 像 Stackoverflow 这样的搜索词结果中的标签定义

java - HTTP 请求处理程序连接重置错误