你能告诉我一个很好的方法来检查,如果远程(HTTP)文件是有效的MP3,而无需下载整个文件,有效的MP3?检查远程文件是
检查远程文件是
回答
您可以尝试
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://...music.mp3");
curl_setopt($curl, CURLOPT_HEADER, 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/mp3','audio/mpeg3','audio/x-mpeg-3');
if (in_array($info, $mp3_mimes)) {
// Somthign cooking
}
另一个建议是下载文件并验证通过读取头信息
$curl = curl_init();
$localfile = "local.temp";
unlink($localfile);
$file = fopen($localfile, 'w+');
curl_setopt($curl, CURLOPT_URL, "http://robtowns.com/music/blind_willie.mp3"); // nput
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FILE, $file);
curl_exec($curl);
curl_close($curl);
fclose($file);
$mp3 = new mp3();
if ($info = $mp3->get_mp3($localfile, true, false)) {
var_dump($info);
} else {
unlink($localfile);
// bad File
}
不确定这是否正确。首先,您只是在服务器发送内容时检查内容类型,但我可以轻松地向您发送内容类型为“audio/mpeg”和内部垃圾的文件。其次,'audio/mpeg'不仅是mp3,还有mp2,它使用不同的编码。 –
有时服务器发送''Content-Type:application/mp3“'。 – NullUserException
@Aleks G I同意....等待我的钱上的改进版本的工作... – Baba
不要相信任何来自服务器。 MIME类型可能是假的。即使是文件名。假设你正在等待MP3文件。存储正确的扩展名并进行验证。
嗯,至少用正确的扩展名沿着集。在最坏的情况下,他们会听到一种可怕的噪音,并且你会受到投诉。
事情是,我做了一个数据库与远程服务器的MP3声音的链接,我正在制作一个脚本,它将获取所有的链接和检查他们是否仍然是“在线”,并且如果他们被删除不去某些远程托管网站..但是,如果我下载所有的mp3声音,并每天检查他们,我生病巨大的交通... –
检查文件大小,如果其> 1mb验证...不是答案,但现在是最好的...
- 1. 检查是否存在远程文件
- 2. 检查远程文件存在
- 3. ASP:检查是否存在远程图像文件
- 4. 如何使用get_headers检查远程文件是否为图像
- 5. 检查远程文件是否已更改
- 6. 如何检查远程文件是否退出代理
- 7. 如何检查Android中的远程文件是否更新?
- 8. 检查远程文件中的内容是否存在
- 9. ASP.Net检查是否存在远程文件
- 10. IOS:检查远程文件是否存在
- 11. iOS下载前检查远程文件是否有更新
- 12. 检查与PHP如果文件是远程服务器
- 13. bash:使用scp检查远程文件是否存在
- 14. 检查远程文件夹是否存在 - Renci.ssh
- 15. Ruby:检查远程服务器上是否存在文件
- 16. 检查远程机器上是否存在文件
- 17. 用ssh检查远程主机上是否存在文件
- 18. 检查远程文件是否存在Linux
- 19. cmd dos检查是否存在远程FTP文件夹
- 20. NodeJS - 使用“Sequest”检查是否存在SFTP远程文件
- 21. 如何检查远程文件是否存在?
- 22. 使用powershell检查远程系统中是否存在文件/文件夹
- 23. 如何通过FTP检查远程文件夹中是否存在文件?
- 24. 检查组是否存在远程
- 25. 检查是否显示远程图像
- 26. 远程PHP getimagesize()/检查是否存在
- 27. node.js检查是否存在远程URL
- 28. 如何检查使用C#查看远程文件是否存在?
- 29. 检查远程计算机上的文件中的文本
- 30. 远程检查iOS用户的文档文件夹
什么是“有效的mp3”?您可以检查标题(请参阅http://stackoverflow.com/questions/2610713/get-mime-type-of-external-file-using-curl-and-php),但不保证该文件将播放。你必须下载整个文件才能确定。 – NullUserException
MP3需要如何验证?完全?只是远程服务器认为它是什么(MIME类型)?只要它有一个有效的ID3头? – jimp
一个'有效的'mp3可以是100GB的随机垃圾,中间埋有一个单独的mp3帧。 –