Tôi đang sử dụng curl để làm cho php gửi một yêu cầu http đến một số trang web ở đâu đó và đã đặt CURLOPT_FOLLOWLOCATION thành 1 để nó theo sau chuyển hướng. Làm thế nào sau đó, tôi có thể tìm ra nơi mà nó cuối cùng đã được chuyển hướng?Tìm ra nơi curl được chuyển hướng
5
A
Trả lời
6
Bạn có thể làm một cái gì đó như:
curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // returns the last effective URL
-1
Nếu bạn không cần cơ thể cuối cùng bạn có thể làm theo cách này:
Set CURLOPT_HEADER
và CURLOPT_NOBODY
. Tiêu đề "Vị trí" phải được trả lại và sẽ chứa url mới. Sau đó thực hiện yêu cầu với url mới nếu cần.
2
$ch = curl_init("http://websitethatredirects.com");
$curlParams = array(
CURLOPT_FOLLOWLOCATION => true,
);
curl_setopt_array($ch, $curlParams);
$ret = curl_exec($ch);
$info = curl_getinfo($ch);
print $info['url'];
này sẽ cho bạn thấy URL mà bạn đã được chuyển hướng đến cuối cùng.
0
kiểm tra đoạn mã này. Nó hoạt động tốt cho tôi:
$urls = array(
'http://www.apple.com/imac',
'http://www.google.com/'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
foreach($urls as $url) {
curl_setopt($ch, CURLOPT_URL, $url);
$out = curl_exec($ch);
// line endings is the wonkiest piece of this whole thing
$out = str_replace("\r", "", $out);
// only look at the headers
$headers_end = strpos($out, "\n\n");
if($headers_end !== false) {
$out = substr($out, 0, $headers_end);
}
$headers = explode("\n", $out);
foreach($headers as $header) {
if(substr($header, 0, 10) == "Location: ") {
$target = substr($header, 10);
echo "[$url] redirects to [$target]<br>";
continue 2;
}
}
echo "[$url] does not redirect<br>";
}
Các vấn đề liên quan
- 1. Có cách nào trong một kịch bản shell để tìm ra nơi đầu ra của nó được chuyển hướng?
- 2. Tìm chuyển hướng URL với tiêu đề HTTP và curl?
- 3. Tìm ra nơi biến được khởi tạo
- 4. Nơi tìm hướng dẫn EJB3?
- 5. Nhận url sau khi curl được chuyển hướng
- 6. Chuyển hướng curl ,, không hoạt động?
- 7. cURL nhận url từ chuyển hướng
- 8. Nơi tìm Hướng dẫn Rails 2.3 cũ
- 9. Một cách để tìm ra URL chuyển hướng
- 10. chuyển hướng đầu ra curl thành các tệp stdout và nhật ký
- 11. cURL 302 được tìm thấy là gì?
- 12. PHP: cURL và theo dõi tất cả các chuyển hướng
- 13. Điều gì gây ra chuyển hướng 301 này?
- 14. Kiểm tra xem đầu ra có được chuyển hướng
- 15. Chuyển hướng đầu ra Trace.axd
- 16. Tìm hiểu rằng đầu ra của chương trình của tôi được chuyển hướng đến một tệp
- 17. cURL, nhận url chuyển hướng tới biến số
- 18. PHP CURL theo chuyển hướng để nhận trạng thái HTTP
- 19. C++ Đầu ra chuyển hướng
- 20. Làm thế nào để ngăn chặn được chuyển hướng với PHP cURL
- 21. Đầu ra có thể bash -v được chuyển hướng không?
- 22. ProcessBuilder được chuyển hướng đến đầu ra tiêu chuẩn
- 23. Thông số màu Perl với đầu ra được chuyển hướng
- 24. Chuyển hướng 301 trên AJAX - được chuyển hướng?
- 25. Tìm nơi lớp java được tải từ
- 26. iPhone Curl Trái và Curl Chuyển tiếp phải
- 27. Chuyển hướng sau thời gian HttpSession ra
- 28. Chuyển hướng đầu ra grep sang tệp
- 29. Tìm commit nơi tệp đã được thêm
- 30. Sử dụng đầu ra cURL
Tốt. Không biết về điều này. Xem xét số lượng tùy chọn curl, không phải lúc nào cũng dễ dàng tìm thấy chúng. Cảm ơn. –