以下のコードスニペットは、cURLを使用してリダイレクトURLから最終的なURL(media/zip/rarファイルがあります)を取得します。それは最終的なURLを取得しますが、疑いはありませんが、URLの取得に時間がかかるファイルのサイズによって異なります。cURLリダイレクトURLの最終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;
}
?>
私は与えられたリダイレクトURLから、最終的なURLを取得したいので、私はfile_get_content()
を使用傾けます。
要するに、結果をダウンロードせずにリダイレクトURLから最終的なURLを取得する方法。
私はそれを明確にします。どんな助けもありがとう。
最終的なURLを取得するためにリダイレクトに続く「真」である必要があります。 –
しかし、リダイレクトする必要はありません。リダイレクトURLを取得します。 –
上記のコードを実行してください。 falseに設定すると、動作していません。そして私はそれを言うことを意味した、私達が場所をたどったら私達は最終的/最後の有効なurlを得る。 –