pecl/fileinfo & rmdir onwamp … Mercredi, juillet 4th, 2007
Attendu que l’installation des extension PECL via pear ne fonctionne pas sous windows voici la marche à suivre pour installer l’une d’entre elle : fileinfo. FileInfo permet notamment de réupérer le type mime d’un fichier.
Normalement (c’est en tout ca sle cas dans wamp), la dll fileinfo.dll se trouve dans le répertoire des extenions PHP ("c:wampphpext" chez moi).
Il suffit donc de rajouter dans le php.ini du php apache (dans "c:wampapache2binphp.ini)
extension=php_fileinfo.dll
jusque là pas RAS on est d’accord. c’est après que le folklore commence. Pour reconnaitre les type mimes, les fonctions fileinfo utilises un fichier texte magic.mime situé dans le répertoire extras de PHP ("c:wampphpextras" chez moi). Grosso modo ce fichier contient des séquences de caractères, dites magiques, qui caractérise tel ou tel type mime. Pour que ce fichier soit correctement utilisé il faut enlever touts les "!" contenu dans le fichier magic.mime et y faire référence dans les fonctions fileinfo via son path absolu windows sans l’extension. Typiquement
finfo_open(FILEINFO_MIME, ‘C:wampphpextrasmagic’);
source : http://www.developpez.net/forums/archive/index.php/t-169754.html
fileinfo.dll : http://pecl4win.php.net/list.php
le coup du ! : http://pecl.php.net/bugs/bug.php?id=9166
Voilà comme hier c’était best of windows j’ai eu également la joir de constater que la fonction rmdir de php ne fonctionne pas sous win32! On peut utiliser unlink pour supprimer des fichiers sans souci, mais impossible de supprimer un dossier même vide. Pour cause de l’utilisateur web n’a pas les permissions, et la partition NTFS ne se montrera pas compréhensive… Dans la série solution au scotch, je n’ai trouvé que celle là sur http://fr3.php.net/manual/fr/function.rmdir.php qui dit :
Save some time, if you want to clean a directory or delete it and you’re on windows.
Use This:
chdir ($file_system_path);
exec ("del *.* /s /q");
You can use other DEL syntax, or any other shell util.
You may have to allow the service to interact with the desktop, as that’s my current setting and I’m not changing it to test this.
donc soit on se fait une raison et on utilise les commandes DOS :-/ soit on autorise wampapache à intergair avec le bureau dans les propriétés du service …