(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
finfo_open -- finfo::__construct — Crée une nouvelle ressource fileinfo
Style procédural
$options
= FILEINFO_NONE
[, string $magic_file
= NULL
]] )Style orienté objet (constructor):
Cette fonction ouvre une base de données magique et retourne sa ressource.
options
Une ou une union de plusieurs constantes Fileinfo.
magic_file
Nom de fichier d'une base de données magique, normalement quelque chose comme /path/to/magic.mime. Si non spécifié, la variable d'environnement MAGIC est utilisée. Si la variable d'environnement n'est pas définie, la base de données magique embarquée à PHP sera utilisée.
Le fait de passer NULL
ou une chaîne de caractères vide équivaut à
utiliser la valeur par défaut.
(Uniquement en mode procédural)
Retourne une ressource de base de données magique en cas de succès ou FALSE
si une erreur survient.
Le format de la base de données magique a changé en PHP 5.3.11 et 5.4.1. De ce fait, la base de données magique interne a été mise à jour. L'un des plus gros effets de cette mise à jour est que, lors d'une lecture d'un fichier magique ancien, elle échoue. De plus, quelques représentations textuelles de type mimes ont changé, par exemple, pour le monde de PHP "PHP script, ASCII text" est retourné au lieu de "PHP script text".
Note:
Généralement, l'utilisation de la base de données magique embarquée (en laissant les variables d'environnement
magic_file
et MAGIC non définies) est la meilleure des solutions à moins que vous n'ayez besoin d'une base de données magique spécifique.
Exemple #1 Style orienté objet
<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic"); // Retourne le type mime
/* Récupère le mime-type d'un fichier spécifique */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);
?>
Exemple #2 Style procédural
<?php
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic"); // Retourne le type mime
if (!$finfo) {
echo "Échec de l'ouverture de la base de données fileinfo";
exit();
}
/* Récupère le mime-type d'un fichier spécifique */
$filename = "/usr/local/something.txt";
echo finfo_file($finfo, $filename);
/* Fermeture de la connexion */
finfo_close($finfo);
?>
L'exemple ci-dessus va afficher :
text/plain; charset=us-ascii