リモート サーバーで mp3 ファイルをテストし、コンテンツ タイプがメディアかどうかを確認しようとしています。私はすでに使用CURLOPT_FOLLOWLOCATION
していCURLINFO_CONTENT_TYPE
ますが、最後の場所になるということですか。URLで試してみたところ、無効であると言われましたが、URLにアクセスすると、ストリーミングされました。このコードのほとんどをhttps://stackoverflow.com/a/12733693から取得し、いくつかの調整を加えましたが、常に正しい結果が得られるとは限らないのではないかと心配しています。最後の URL のコンテンツ タイプを取得するにはどうすればよいですか?
function mp3URLIsValid($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_FILETIME, true);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$header = curl_exec($curl);
$info = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
curl_close($curl);
$mp3_mimes = array('audio/mpeg','application/octet-stream','application/mp3','audio/mpeg3','audio/x-mpeg-3');
if (in_array($info, $mp3_mimes)) {
return true;
}
return false;
}