我正在使用curl讓php向某個網站發送http請求,並將CURLOPT_FOLLOWLOCATION設置爲1,以便它遵循重定向。那麼,我可以找出它最終重定向的位置嗎?找出捲曲被重定向的位置
5
A
回答
6
你可以這樣做:
curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); // returns the last effective URL
-1
如果您不需要歸身,你可以這樣來做:
集CURLOPT_HEADER
和CURLOPT_NOBODY
。標題「位置」應該被返回並且將包含新的URL。然後根據需要用新的URL執行請求。
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'];
這會告訴你,你最終被重定向到URL。
0
測試這段代碼。它適用於我:
$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>";
}
相關問題
- 1. 如何找到我將使用捲曲重定向的位置?
- 2. 重定向與捲曲/ HttpClient的:頭 「位置」 失蹤
- 3. PHP /捲曲重定向
- 4. 找出Jquery ajax請求被重定向到的位置
- 5. PHP多捲曲 - 找出什麼代理被用於特定的捲曲手柄
- 6. 簡單的捲曲重定向
- 7. 捲曲的Referer和重定向
- 8. Ajax中的捲曲式重定向
- 9. 捲曲重定向,不工作?
- 10. 捲曲不能按照重定向
- 11. 捲曲重定向不起作用?
- 12. 重定向後捲曲不工作
- 13. 捲曲--form文件重定向
- 14. 捲曲和重定向到ssl網站
- 15. 遵循重定向與捲曲在php
- 16. 捲曲重定向隱藏內容
- 17. PHP捲曲,貝寶重定向
- 18. 捲曲重定向與手動重定向差異
- 19. 重定向捲曲庫函數的輸出到圖像文件
- 20. PHP:查找重定向URL的位置
- 21. 找到URL重定向到的位置
- 22. 捲曲包括垃圾時重定向錯誤輸出到
- 23. 捲曲,FOPEN及的file_get_contents隨機拋出「連接被重置」,在瀏覽器
- 24. 頭功能不會重定向,當我使用捲曲得到重定向URL
- 25. PHP的捲曲登錄Instagram的進入重定向循環
- 26. 獲取重定向的客戶端(捲曲)的結果
- 27. 優化卷 - 分析輸出重定向
- 28. 系統找不到指定的捲曲
- 29. 通過捲曲獲取用戶位置
- 30. 如何顯示捲曲或其他工具中的重定向?
不錯。不知道這個。考慮到捲曲選項的數量,它並不總是很容易找到它們。謝謝。 – 2009-11-06 15:21:56