2011-01-14 5 views
5

Tôi muốn thực hiện yêu cầu http và chuyển tất cả cookie mà tập lệnh hiện tại nhận được (trong phiên cụ thể xác định cookie) đến yêu cầu này. Sau đó, tôi muốn lưu kết quả trong một chuỗi để thao tác thêm. Cách tốt nhất để làm điều này trong PHP là gì?PHP Cách thực hiện yêu cầu http gửi cookie và lưu kết quả vào chuỗi

+0

thể trùng lặp của [PHP - Gửi cookie với file_get_contents] (http://stackoverflow.com/questions/3431160/php-send-cookie -with-file-get-contents) – Gordon

+0

possiblr trùng lặp của [Sao chép cookie từ phản hồi đầu tiên sang yêu cầu tiếp theo] (http://stackoverflow.com/questions/4212442/copying-cookies-from-first-response-to-next- yêu cầu) – Gordon

+0

Gordon - một trong số đó Ví dụ và bạn có thể thuyết phục tôi đóng câu hỏi này;) – agsamek

Trả lời

6

cURL? - đó là các cookie đơn giản và bổ sung.

Sửa 19,1 - Dưới đây là ví dụ

 
$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 là tập tin mà curl đặt cookie được gửi từ máy chủ và CURLOPT_COOKIEFILE là tập tin với cookie gửi bởi cURL (cài đặt nó vào cùng một sẽ làm cho nó cookie nào tập tin).

Một tùy chọn khác là đọc cookie theo cách thủ công từ kết quả (đặt CURLOPT_HEADER thành '1' - nó sẽ đặt tiêu đề kết quả thành $ output) và gửi cookie qua CURLOPT_COOKIE (đặt nó vào danh sách cookie theo định dạng 'foo = bar; bar = foo;')

Note - libcurl phải được cho phép trong php.ini

+0

Bạn có thể cung cấp một số mã nguồn ở đây để chuyển cookie và parametrs của tập lệnh currenct và thư viện này có sẵn trên PHP lưu trữ chuẩn không? – agsamek

+0

đã thêm ví dụ :-) – SergeS

+0

Cảm ơn, có vẻ tốt, có thể thực hiện điều này mà không có libcurl không? – agsamek