PHP如何执行传递cookie的http请求并将结果保存到字符串

ags*_*mek 5 php cookies http session-cookies

我想执行一个http请求,并将当前脚本收到的所有cookie(特别是会话标识cookie)传递给此请求.然后我想将结果保存在字符串中以便进一步操作.在PHP中执行此操作的最佳方法是什么?

Ser*_*geS 6

cURL? - 它很简单,也有支持饼干.

编辑19.1 - 这是一个例子

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookies.txt');

$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

CURLOPT_COOKIEJAR是cURL放置从服务器发送的cookie的文件,CURLOPT_COOKIEFILE是带有cookie的文件,用于通过cURL发送(将其设置为同一个将使其成为cookie文件).

另一种选择是从结果中手动读取cookie(将CURLOPT_HEADER设置为'1' - 它将结果标头放入$ output)并通过CURLOPT_COOKIE发送cookie(将其设置为格式为'foo = bar; bar = foo;')的cookie列表

注意 - 必须在php.ini中启用libcurl