finfo_open

finfo::__construct

(PHP >= 5.3.0, PHP 7, PHP 8, PECL fileinfo >= 0.1.0)

finfo_open -- finfo::__constructCrea una nueva instancia finfo

Descripción

Estilo por procedimientos

finfo_open(int $flags = FILEINFO_NONE, ?string $magic_database = null): finfo|false

Estilo orientado a objetos (constructor):

public finfo::__construct(int $flags = FILEINFO_NONE, ?string $magic_database = null)

Esta función abre una base de datos mágica y devuelve su instancia.

Parámetros

flags

Una o una unión de varias constantes Fileinfo.

magic_database

Nombre de fichero de una base de datos mágica, normalmente algo como /path/to/magic.mime. Si no se especifica, se utiliza la variable de entorno MAGIC. Si la variable de entorno no está definida, se utilizará la base de datos mágica integrada en PHP.

Pasar null o un chaîne de caractères vacío equivale a utilizar el valor por omisión.

Valores devueltos

(Únicamente en modo procedimental) Devuelve una instancia de finfo en caso de éxito, o false en caso de error.

Historial de cambios

Versión Descripción
8.1.0 Ahora devuelve una instancia de finfo ; anteriormente, se esperaba una recurso.
8.0.3 magic_database ahora es nullable.

Ejemplos

Ejemplo #1 Estilo orientado a objetos

<?php
$finfo
= new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // Devuelve el tipo mime

/* Obtiene el mime-type de 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

if (!$finfo) {
echo
"Fallo al abrir la base de datos fileinfo";
exit();
}

/* Obtiene el mime-type de un fichero específico */
$filename = "/usr/local/something.txt";
echo
finfo_file($finfo, $filename);

/* Cierre de la conexión */
finfo_close($finfo);
?>

El resultado del ejemplo sería:

text/plain; charset=us-ascii

Notas

Nota:

Generalmente, el uso de la base de datos mágica integrada (dejando las variables de entorno magic_database y MAGIC no definidas) es la mejor solución a menos que se necesite una base de datos mágica específica.

Ver también