Php 在流\u获取\u内容中使用curl保存的cookie

Php 在流\u获取\u内容中使用curl保存的cookie,php,curl,file-get-contents,Php,Curl,File Get Contents,我想发送POST请求,实际上curl比stream\u get\u内容慢100毫秒,所以我想使用后者 我有一个由curl保存的cookie.txt,我如何使用它来实现下面的stream\u get\u contents函数 function poster($url, $data, $optional_headers = null) { $params = array('http' => array( 'method' => 'POST',

我想发送POST请求,实际上curl比stream\u get\u内容慢100毫秒,所以我想使用后者

我有一个由curl保存的cookie.txt,我如何使用它来实现下面的stream\u get\u contents函数

function poster($url, $data, $optional_headers = null)
{
  $params = array('http' => array(
              'method' => 'POST',
              'content' => $data
            ));
  if ($optional_headers !== null) {
    $params['http']['header'] = $optional_headers;
  }
  $ctx = stream_context_create($params);
  $fp = @fopen($url, 'rb', false, $ctx);
  if (!$fp) {
    throw new Exception("Problem with $url, $php_errormsg");
  }
  $response = @stream_get_contents($fp);
  if ($response === false) {
    throw new Exception("Problem reading data from $url, $php_errormsg");
  }
return $response;
}
curl存储的cookie.txt如下所示

secure.domain.com   FALSE   /   FALSE   0   InterSecure AyDzUp5AEKz0ErJYeJF2221lIA$$
#HttpOnly_secure.domain.com FALSE   /   TRUE    0   ASP.NET_SessionId   eqyrgo545czouimlnqc223f0qyi
我试过类似的东西

 $header = array(
    'Referer: https://secure.domain.com/IDirectTrading/customer/login.aspx',
    'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.20 Safari/537.36',
    'Cookie :   InterSecure = AyDzUp5AEKz0ErJYeJF2221lIA$$;ASP.NET_SessionId = eqyrgo545czouimlnqc223f0qyi'
 );
$CE = poster("https://secure.domain.com/Handler.ashx",$str,$header);
但cookie似乎不起作用,有没有办法将cookie文本文件解析为数组并将其用于标题?

根据:

通过处理每个cookie,将cookie列表序列化为cookie字符串 cookie列表中的cookie按顺序排列:

  • 输出cookie的名称、%x3D(“=”)字符和cookie的值

  • 如果cookie列表中存在未处理的cookie,则输出字符%x3B和%x20(“;”)

  • 换句话说,等号周围没有空格,每个cookie应该用分号和空格分隔:

    $header = [
        'Cookie: InterSecure=AyDzUp5AEKz0ErJYeJF2221lIA$$; ASP.NET_SessionId=eqyrgo545czouimlnqc223f0qyi',
    ];
    

    “似乎不起作用”并没有给我们太多的机会。额外的头是否会随请求一起发送?你有没有试过去掉那行多余的空格?似乎不起作用-我请求的页面已注销,cookie似乎不起作用。。然而,如果我用那个cookie文件发送curl请求,响应将被记录在inOk中,但同样,“注销”在我们查看此代码的上下文中并不意味着什么。您是否已验证cookie标头是否随请求一起发送?如何检查其是否已发送?嗯,实际上不确定,如果您没有访问服务器的权限。您是否尝试按照我的答案正确格式化cookie?