Я использовал mime_content_type()
и информацию о файле, но никогда не добился успеха. Я хочу использовать теперь cURL с PHP и получить заголовки файла, который размещен в другом домене, а затем извлечь и определить, является ли тип MP3 или нет. (я думаю, что тип mime MP3 – audio/mpeg
)
Вкратце, я знаю это, но я не знаю, как его применять 🙂
благодаря
<?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 ?>
curl -I http://www.google.com
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
Вы можете использовать запрос HEAD через curl. Подобно:
$ch = curl_init(); $url = 'http://sstatic.net/so/img/logo.png'; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $results = explode("\n", trim(curl_exec($ch))); foreach($results as $line) { if (strtok($line, ':') == 'Content-Type') { $parts = explode(":", $line); echo trim($parts[1]); } }
Что возвращает: image / png
Если вы в порядке с более элегантной версией Zend Framework, вот класс, который использует компонент Zend_Http_Client.
Используйте его так:
$sniffer = new Smartycode_Http_Mime(); $contentType = $sniffer->getMime($url);