(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):
$options
= FILEINFO_NONE
[, string $magic_file
= NULL
]] )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 cette variable n'est pas fixée non plus, /usr/share/misc/magic est utilisé. L'extension .mime et/ou .mgc est ajoutée si approprié.
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.
Depuis PHP >= 5.3.11 et >= 5.4.1, le format de la base de données magique a changé. A cause de cela, le mime interne de la base de données a évolué. Ceci affecte tout spécialement le code où la magie externe y est lue. Le fait de lire des fichiers magiques à l'ancien format ne fonctionne plus. De plus, la représentation textuelle de certains types mime a changé ; par exemple, pour PHP, c'est maintenant "PHP script, ASCII text" au lieu de "PHP script text".
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