Auto_UTF8: L'encédeur de ptits lots (MAJ avec formulaire)
En ce moment, je suis sur un projet perso d'évaluation du socle commun, Nème version, que je débuggue à mort en reprenant à zéro des portions entières qui avaient souffert du syndrome dit du "patchage à la va vite comme un gros porc"... Vu que l'encodage n'avait pas été ma priorité principale et que j'avais codé sur plein de bécanes différentes et plein d'IDE différents, j'avais une majorité de pages encodées en ANSI (beurk).
Donc, avant de me lancer dans un glisser-déposer-menu-encoder en UTF8-sauver frénétique avec notepad++, je me suis dit que je gagnerais du temps à me bidouiller un script qui me fasse le taf comme un grand...
Encore un truc dont on va me dire :
- que c'est codé en mode gros noob
- qu'il existe une fonction cachée et non documentée de php qui le fait
- que, oui, d'accord, mais ce serait mieux en python,
- que, ok, j'veux bien, mais une classe, c'était plus élégant,
- qu'en fait plus personne utilise foreach, vu qu'avec array_map et une jolie fonction callback ça fait plus mec genre qu'il maîtrise...
- qu'il faut être vraiment C** pour s'e*****er à coder un truc tout pourri alors qu'en se faisant un joli plug-in pour notepad++, on pouvait automatiser la tâche...
Oui, c'est vrai, mais SebSauvage a dit qu'il fallait partager même les bouts de code qui semblent... ben... comme celui-là...
Et moi, j'aime beaucoup SebSauvage
Hé ho ! C'est mon rôle de te poignarder le fion, normalement, non ?
En plus, tu m'as piqué tous mes arguments...
Sans compter que si SebSauvage avait imaginé une seconde qu'on le citerait pour justifier une daube pareille, il se serait fait plombier-zingueur... je pense.
En voilà une bonne nouvelle... tu penses. Fais gaffe quand même... au claquage...
Boarf un claquage du cerveau... pfff
Non, je faisais plutôt référence au claquage de ta face si tu jartes pas dans les 7 secondes...
Je ne me suis pas embêté a goupiller un petit formulaire (c'était un truc fait à la va-vite) et je l'ai utilisé en mode viril et poilu: directement dans la barre d'adresse façon "ligne de commande" ...
Pour la mise à jour, je vous ajoute un form, promis
Ayéééééééééééééé ! Vu que pour mercredi prochain, j'ai concocté un autre truc très utile et que j'ai dû faire un formulaire, je l'ai adapté à auto_UTF8... Si des virils préfèrent la version sans formulaire, je la laisse
Donc, pour faire simple, vous collez le fichier auto_utf8.php à la racine du site et vous lui passez en get f=le dossier à traiter ou alors, vous le collez directement dedans et vous le lancez... remplissez le chti formulaire si besoin.
Il va changer l'encodage de tout ce qui n'est pas une image en qui n'est pas trop gros... PAF ! utf8 sans BOM dans ta gu*** !
Pour ceux qui voudraient me poutrer sans se casser le joufflu à télécharger le php, je vous le copiecolle là C'est la version sans formulaire, mais le fonctionnement est le même:
<?php /* VERSION SANS FORMULAIRE - Force l'encodage de tous les fichiers du dossier en utf8 si nécessaire Utile quand il y a plein de fichiers mal encodés dans ton projet... par défaut, il traite les fichiers présents dans le même dossier, si on précise en get la variable ?f=folder, il traite ce dossier...par Bronco@warriordudimanche.net www.warriordudimanche.net Libre, gratuit et inodore ^o^
*/
if (isset($_GET['f'])){$dossier=$_GET['f'].'/';}else{$dossier='';}
function return_UTF8($chaine){ $utf8=str_replace("\xef\xbb\xbf", '',utf8_encode($chaine));// SANS BOM !!!! if (strpos($utf8,'Ã')){return $chaine;}else {return $utf8;}// bon, là, on peut sans AUCUN doute mieux faire ^o^ } function exclude_folder_large_or_image($file){ if (!is_file($file)){return false;} if (filesize($file)>1000000){return false;} if (preg_match_all('/(?<=.)mp3|mp4|flv|jpeg|jpg|gif|png|swf/i',$file,$puits)){return false;} return true; } $files=glob($dossier); foreach($files as $file){ if (exclude_folder_large_or_image($file)!=false){
$content=file_get_contents($file); $content2=return_UTF8($content); if ($content2!=$content){ echo '<li>conversion de '.htmlentities($file).'</li>'; file_put_contents($file,$content2); } }
} ?>
Sinon, on récup la version avec formulaire via le joli lien que voilà et la version sans formulaire (avec des paramètres en GET) par ce lien-ci
❝ 5 commentaires ❞
Fil RSS des commentaires de cet article
✍ Écrire un commentaire
les commentaires relevant du SPAM seront filtrés et dégagés direct...