下面的代碼片段是使用cURL從重定向URL獲取最終URL(其中包含media/zip/rar文件)。它獲得最終的URL,毫無疑問,但它所做的是根據文件的大小,它隨時間變化以獲取URL。cURL需要很長時間才能獲得重定向URL的最終網址
假設最終URL的文件爲1MB,則需要大約5秒才能檢索。但是,如果該文件大約爲35MB,則需要大約150秒的時間。我認爲cURL正在下載結果並最終從結果中獲取URL。
<?php
echo get_rurl("x_url");//1.2MB -> 5-10sec
//echo get_rurl("y_url");//31.6MB -> 150sec
function get_rurl($url){
// initialize cURL
$curl = curl_init($url);
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
));
// execute the request
$result = curl_exec($curl);
// fail if the request was not successful
if ($result === false) {
curl_close($curl);
return null;
}
// extract the target url
$redirectUrl = curl_getinfo($curl, CURLINFO_EFFECTIVE_URL);
curl_close($curl);
return $redirectUrl;
}
?>
我不能使用file_get_content()
因爲我只是想從給定的重定向URL最終URL。
簡而言之 - 如何從重定向網址獲取最終到達網址而無需下載結果。
希望我說清楚。任何幫助將不勝感激。
這是必須是'真正的'這將遵循重定向得到最終的URL –
但你不希望*遵循重定向。你想獲得重定向網址。 –
請嘗試執行上述代碼。通過將其設置爲false,不起作用。我的意思是說,如果我們關注位置,那麼只有我們才能得到最終/最後一個有效的網址。 –