FONCTION DE CONVERSION D'UNE CHAINE DE CARACTÈRE VERS UN TYPAGE UNIX

juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 - 23 janv. 2007 à 14:17
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 24 mai 2008 à 11:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41226-fonction-de-conversion-d-une-chaine-de-caractere-vers-un-typage-unix

codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
24 mai 2008 à 11:13
merci :)
guewini Messages postés 9 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 27 novembre 2008
23 mai 2008 à 16:42
Je dois dire que je n'ai pour l'instant jamais eut le problème ... en tout cas rien à redire sur ta solution. Ca a l'air tip top ^^
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
22 mai 2008 à 23:01
Une petite simplification du code ? d?t s'imposer.
@Guewini strtr pose probleme si l'encodage du fichier est en utf-8 (en tout cas pour moi ! :/)
C'est pour cela que j'ai gard? ma m?thode originelle, mais optimis'e maintenant ! (:
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
1 juin 2007 à 10:38
par contre je crois que strtr est plus rapide :)
Oué ! pas mal !, surtout que tu en remplace plus que moi (par les bonnes correspondances) apparement là :)
guewini Messages postés 9 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 27 novembre 2008
1 juin 2007 à 09:55
Moi je fais comme ca (ce qui reviens au même mais ca prend une ligne) :
$chaine = strtr($chaine, "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ -'", "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn___");
inconvénient : c'est caractères par caractère donc le '&' n'est pas remplacable par '_and_'
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
17 mai 2007 à 21:02
Oui dans ce cas là preg_replace reste la solution la moins prise de tête... .. . ;o)

@ tchaOo°
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
17 mai 2007 à 15:45
Kankrelune : le soucis avec str_replace, c'est le fait qu'elle est sensible à la casse, et str_ireplace n'est que depuis php5 ? La meilleur solution reste encore preg_replace (sauf si tu a une proposition plus interessante ! je suis vraiment interessé d'optimiser cette fonction !)
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
25 janv. 2007 à 13:49
comme garfield90... le tout dans un str_replace() (sauf pour la dernière expression)

@ tchaOo°
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
24 janv. 2007 à 14:21
Tu pourrais déjà regrouper les caractères par groupe tes à,ä,à ensemble idem pour le é,è,...

Tu aurais un tableau beaucoup plus lisible.
$search = array('#à|ä|â#',...,'# |"|\'#');
$replace = array('a',...,'-');

Je trouverai ca plus simple mais bon après c'est une histoire de bench
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
23 janv. 2007 à 14:19
merci de ton commentaire mais j'ai pas tout compris :
"si ya mieu je prend", la mienne est mieux ou pas d'apres toi ? si elle est pas mieux, met la tienne, justement, le but ici (pour moi) et de trouver la meilleur fonction pour ce type d'usage :)
mais apparement d'apres ce que tu en dit, la mienne serait plus rapide, car elle utilise que les expressions régulieres, que toi ca utilise deux fois la fonctions htmlentities, une boucle foreach et un str_replace, ca parait plus lourd :)
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
23 janv. 2007 à 14:17
Bonne idée d'utiliser #, la methode que j'ai trouvé est de faire un htmlentities(..,.., 'utf-8'), de faire une array('À' => 'a' ...), suivit d'une grose boucle foreach() et de str_replace(), pour terminer avec un html_encode(.., .., 'utf-8').
Car le truc "dangeureux" c'est d'encoder mal son script php (ça peut arriver par inavertance) et de ce retrouvé avec quelque chose de pas encodé ou pire de mal encodé.
C'est pourqoui je n'aime pas du tout laisser des choses non ASCII hors des commentaires.
Si ya mieu je prend :)