(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
finfo_open -- finfo::__construct — Crea un nuevo recurso fileinfo
Estilo por procedimientos
$options
= FILEINFO_NONE
[, string $magic_file
= NULL
]] )Estilo orientado a objetos (constructor):
Esta función abre una base de datos mágica y la devuelve a su recurso.
options
Una o más constantes Fileinfo .
magic_file
Nombre del fichero de la base de datos mágica, normalmente es algo como /path/to/magic.mime. Si no se especifica, se utilizará la variable de entorno MAGIC. Si esta variable no está establecida, se usará la base de datos mágica incluida en PHP.
Pasar NULL
o un string vacío equivale al valor
predeterminado.
(Sólo Estilo por procedimientos)
Devuelve el recurso de la base de datos mágica si funciona o FALSE
en caso de error.
El formato esperado de la base de datos mágica cambió en PHP 5.3.11 y 5.4.1. Debido a esto, la base de datos mágica interna ha sido actualizada. Esto mayormente efectua código donde se use una base de datos mágica externa: leer un fichero mágico antiguo ahora fallará. Además, algunas representaciones textuales de los tipos mime han cambiado, por ejemplo, para PHP sería devuelto "PHP script, ASCII text" en lugar de "PHP script text".
Nota:
Generalmente, el uso de la base de datos mágica interna (dejando
magic_file
y las variables de entorno MAGIC sin establecer) es el mejor rumbo de acción a menos que sea necesaria especificamente una base de datos mágica personalizada.
Ejemplo #1 Estilo orientado a objetos
<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // Devuelve el tipo mime del tipo extensión
/* Obtiene el tipo mime para un fichero específico */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);
?>
Ejemplo #2 Estilo por procedimientos
<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // Devuelve el tipo mime del tipo extensión
if (!$finfo) {
echo "Ocurrió un error al intentar abrir la base de datos de fileinfo";
exit();
}
/* Obtiene el tipo mime para un fichero específico */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);
/* cerrar conexión */
finfo_close($finfo);
?>
El resultado del ejemplo sería:
text/plain; charset=us-ascii