嘿,检查远程文件mime类型的最快方法是什么...我正在考虑从第一个字节中读取一些内容,也许还有更多...我花了几个小时来思考如何使事情变得正确,但是什么都没做我的想法...我必须检查远程文件是否为mp3,但必须快速检查...
PHP curl_getinfo()
<?php
# the request
$ch = curl_init('http://www.google.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
# get the content type
echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
# output
// text/html; charset=ISO-8859-1
?>
输出
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Fri, 09 Apr 2010 20:35:12 GMT
Expires: Sun, 09 May 2010 20:35:12 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
为了实际确认文件是否包含实际的MP3数据或任何其他媒体格式,我使用getID3()。
进行HEAD请求。查看服务器声称的内容类型。
[This stackoverflow question讨论通过PHP访问HTTP标头。
[仅检查您信任的远程服务器的Content-Type
时:
一种更安全的方法是将文件下载到一个临时文件夹中,然后使用mime_content_type
使用mime_content_type
在本地检查MIME类型。
[此技术仅使用幻数,仅读取文件的第一个字节(标题),可以绕开。
最安全的方法是使用一个库来验证给定文件对于它应为的必需类型有效。