我正在尝试在远程服务器上测试 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;
}