ストリーム (ogg または mp3 ファイル) が存在するかどうかを検出しようとします。
get_headers を使用したかったのですが、私のホスティングではこの機能が無効になっていることに気付きました。
htaccess で有効化できますが、何らかの理由で正しく機能しません。
とにかく、私はcURLを使用することに決めました.URLが存在するかどうかを検出しようとすると動作します:
$curl = curl_init();
curl_setopt_array( $curl, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => 'http://stackoverflow.com' ) );
curl_exec( $curl );
$response_code = curl_getinfo( $curl, CURLINFO_HTTP_CODE );
curl_close( $curl );
echo 'http://stackoverflow.com : response code '.$response_code.'<br />';
if ($response_code == 200)
{
echo 'url exists';
} else {
echo "url doesn't exist";
}
それは正常に動作します。偽の URL で試してみましたが、応答コードは 0 です。
このようなストリームで機能しない理由がわかりません:
http://locus.creacast.com:9001/StBaume_grotte.ogg
サーバーの問題について考えましたが、ネット上で見つかった他のストリーム ( http://radio.rim952.fr:8000/stream.mp3など)を試しましたが、まだ応答コードを取得できません。
$curl_2 = curl_init();
curl_setopt_array( $curl_2, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => 'http://locus.creacast.com:9001/StBaume_grotte.ogg' ) );
curl_exec( $curl_2 );
$response_code_2 = curl_getinfo( $curl_2, CURLINFO_HTTP_CODE );
curl_close( $curl_2 );
echo '<br /><br />http://locus.creacast.com:9001/StBaume_grotte.ogg : '.$response_code_2.'<br />';
if ($response_code_2 == 200)
{
echo 'url existe';
} else {
echo "url n'existe pas";
}
サーバーの問題ではないと思いますが、URL/ファイルのタイプに関連しています。
私が何をチェックできるか知っていますか?ファイルが存在し、応答コードを取得するのが非常に遅い場合でも、応答コードは常に 0 です。