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