validate - Obtener mime tipo de archivo externo usando cURL y php
validate mime type php (3)
He usado mime_content_type()
y la información del archivo, pero nunca he tenido éxito. Quiero usar ahora cURL con PHP y obtener los encabezados del archivo que está alojado en otro dominio, luego extraer y determinar si el tipo es MP3 o no. (Creo que el tipo mime de MP3 es audio/mpeg
)
Brevemente, lo sé, pero no sé cómo aplicarlo :)
Gracias
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
?>
rizo
curl -I http://www.google.com
salida
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
Puede utilizar una solicitud HEAD a través de curl. Me gusta:
$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]);
}
}
Lo que devuelve: imagen / png
Si está de acuerdo con una versión de Zend Framework más elegante, aquí hay una clase que utiliza el componente Zend_Http_Client.
Úsalo así:
$sniffer = new Smartycode_Http_Mime();
$contentType = $sniffer->getMime($url);