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

时间:2011-01-14 11:11:37

标签: php http cookies session-cookies

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

1 个答案:

答案 0 :(得分: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