Impossible d'utiliser l'extension php_mime_magic

Eléphanteau du PHP | 10 Messages

03 août 2007, 19:49

Bonjour,
Avec le dernier wamp5 (Apache/2.2.4 (Win32) PHP/5.2.3) j'essaie d'utiliser finfo_open
Malgré la lecture de
http://pecl.php.net/bugs/bug.php?id=7555
et
http://www.developpez.net/forums/sho...ght=finfo_open

je n'arrive pas à faire fonctionner le code suivant !!

Code : Tout sélectionner

<?php $name="./sample/message.eml"; if( file_exists($name) ) { echo "yes"; /* 1° type d'essai */ $finfo = finfo_open(FILEINFO_MIME,"C:/wamp/php/extras/magic"); // Retourne le type mime à la extension mimetype $mime=finfo_file($finfo, $name); finfo_close($finfo); echo $mime; // 2° type d'essai /* $o = file_get_contents($name); $finfo = new finfo(FILEINFO_MIME, 'C:/wamp/php/extras/magic'); echo $finfo->buffer($o); */ } else { echo "nop"; } ?>
J'ai ce retour :
yes
Warning: finfo_file(): supplied argument is not a valid file_info resource in C:\wamp\moi\graal_travail\exemples_applicatifs\mimeparser-2007-07-20\test\magic_01.php on line 7

Warning: finfo_close(): supplied argument is not a valid file_info resource in C:\wamp\moi\graal_travail\exemples_applicatifs\mimeparser-2007-07-20\test\magic_01.php on line 8
D'avance, merci pour vos suggestions.

Suite :

Bonsoir,

en fait, rien à voir avec l'extension php_mime_magic mais tout à voir avec l'extension php_fileinfo.

En faisant le tout des popotes, et en collectionnant tout ce qui se trouvait dans les conversations suivantes
http://pecl.php.net/bugs/bug.php?id=10259
http://pecl.php.net/bugs/bug.php?id=10565
http://pecl.php.net/bugs/bug.php?id=7391
http://pecl.php.net/bugs/bug.php?id=7555

j'ai pu m'en tirer à savoir :

- mettre dans le répertoire "C:/wamp/php/extras/", à la place du magic.mime existant les 4 fichiers "magic.mime, magic.mime.mgc, magic, magic.mgc" contenus dans le répertoire share/file du fichier "file-4.21-bin.zip" à télécharger ici http://sourceforge.net/project/showfile ... e_id=18878
- ne pas nommer dans le finfo_open le fichier "magic.mime" mais seulement le fichier "magic"
- traiter le fichier avec son nom complet "$mime=finfo_file($finfo, realpath($name));" au lieu de $mime=finfo_file($finfo, $name);

A part ça c'est assez simple d'utilisation avec wamp !!!!!
J'espère que les distrib linux sont pas aussi lourdes !!!

voici un script qui fonctionne chez moi

Code : Tout sélectionner

<?php $name="./sample/message.eml"; if( file_exists($name) ) { $finfo = finfo_open(FILEINFO_MIME,"C:/wamp/php/extras/magic"); var_dump($finfo); $mime=finfo_file($finfo, realpath($name)); finfo_close($finfo); echo $mime; } else { echo "nop"; } ?>
et un second qui fonctionne aussi !!

Code : Tout sélectionner

<?php $finfo = finfo_open(FILEINFO_MIME,"C:/wamp/php/extras/magic"); foreach (glob("*") as $filename) { echo $filename . "<br />"; echo realpath($filename) . "<br />"; echo finfo_file($finfo, realpath($filename)) . "<br />"; } finfo_close($finfo); ?>
Cordialement
Christophe Charron