(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):
$options
= FILEINFO_NONE
[, string $magic_file
= NULL
]] )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 está especificada se utilizará la variable de entorno MAGIC. Si esta variable no está establecida, se utilizará /usr/share/misc/magic por defecto. Require la extensión .mime y/o .mgc.
Pasar NULL o una cadena vacía será el equivalente al valor por defecto.
(Sólo Estilo por procedimientos)
Devuelve el recurso de la base de datos mágica si funciona o FALSE
en caso de error.
A partir de PHP >= 5.3.11 y >= 5.4.1 el formato de base de datos mágico ha cambiado. A raíz de esto, los tipos mime internos de la base de datos han sido mejorados. Esto afecta especialmente al código donde se lee un fichero mágico externo. Leer ficheros mágicos con los formatos antiguos no funcionará. 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".
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