Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Caracteres speciaux

8 réponses
Avatar
jp.witz
J'aimerai que, dans une chaine de caractères, php remplace les caratères
"hors normes" du genre Ë,Ê (caractères majuscules accentués) ou même
l'espace par des caractères "normaux" du genre E (sans accent).
Par exemple que "LEBOË -203" deviennne "LEBOE-203".
Y a-t-il une fonction simple qui premette ceci?

Merci

Jean-Paul

8 réponses

Avatar
Stephane Pineau
Le 06 May 2004 18:03:23 GMT, "jp.witz" <""@wanadoo.fr>
écrivait:

J'aimerai que, dans une chaine de caractères, php remplace les caratères
"hors normes" du genre Ë,Ê (caractères majuscules accentués) ou même
l'espace par des caractères "normaux" du genre E (sans accent).


$texte=strtr($texte,"ËÊ","EE");


--
AcroDict : Dictionnaire francophone des acronymes informatiques
<URL:http://www.teaser.fr/~spineau/acrodict/index.htm>
PHP Page : Script PHP3 Gratuits (Forum, Gestionnaires BDD, etc..)
<URL:http://steph.pineau.free.fr/php/index.php>

Avatar
loufoque
jp.witz wrote:

Par exemple que "LEBOË -203" deviennne "LEBOE-203".
Y a-t-il une fonction simple qui premette ceci?


Je ne crois pas.
On peut peut-être essayer de passer la chaîne en US-ASCII avec iconv...
Mais peut-être va-t-il plutôt virer les caractères.

Avatar
Olivier Miakinen
jp.witz avait écrit
[...] caratères "hors normes" du genre Ë,Ê [...] caractères
"normaux" du genre E (sans accent).


Ça fait bizarre, dans un groupe francophone, de lire que les caractères
accentués sont « hors normes ». À première vue, je ne vois pas pourquoi
il faudrait les remplacer. Évidemment, c'est toi qui choisis...

Par exemple que "LEBOË -203" deviennne "LEBOE-203".


Ah, c'est pour en faire des noms de fichiers ? Je vois que tu as
supprimé aussi les espaces (mais peut-être que les remplacer par des
underscores serait plus dans la logique de ce que tu veux faire).

Le 07/05/2004 19:46, loufoque a répondu :

Y a-t-il une fonction simple qui premette ceci?


Je ne crois pas.


Si, il y a le strtr proposé par Stéphane Pineau.

On peut peut-être essayer de passer la chaîne en US-ASCII avec iconv...
Mais peut-être va-t-il plutôt virer les caractères.


Ni l'un ni l'autre je crois : iconv devrait stopper la conversion au
premier caractère non traduisible. Complètement inutilisable, donc.


Avatar
jp.witz
Merci... c'est tout à fait ce qu'il faut!!

Jean-Paul

"Stephane Pineau" a écrit dans le message de
news:
Le 06 May 2004 18:03:23 GMT, "jp.witz" <""@wanadoo.fr>
écrivait:

J'aimerai que, dans une chaine de caractères, php remplace les caratères
"hors normes" du genre Ë,Ê (caractères majuscules accentués) ou même
l'espace par des caractères "normaux" du genre E (sans accent).


$texte=strtr($texte,"ËÊ","EE");


--
AcroDict : Dictionnaire francophone des acronymes informatiques
<URL:http://www.teaser.fr/~spineau/acrodict/index.htm>
PHP Page : Script PHP3 Gratuits (Forum, Gestionnaires BDD, etc..)
<URL:http://steph.pineau.free.fr/php/index.php>



Avatar
loufoque
Olivier Miakinen wrote:

Y a-t-il une fonction simple qui premette ceci?


Je ne crois pas.


Si, il y a le strtr proposé par Stéphane Pineau.
Je n'appelle pas ça une fonction simple.

Il faut faire un tableau associatif contenant tous les caractères à
changer et le nouveau caractère à mettre à la place. C'est plutôt long.
Il doit y avoir dans les 128 caractères.



Avatar
Olivier Miakinen

Si, il y a le strtr proposé par Stéphane Pineau.
Je n'appelle pas ça une fonction simple.



C'est une question de point de vue. La fonction iconv, par exemple, qui
doit connaître l'emplacement de centaines de caractères pour plusieurs
dizaines d'encodages, me semble une fonction compliquée (quoique elle
soit relativement simple à utiliser dans les cas kivonbien).

Il faut faire un tableau associatif contenant tous les caractères à
changer et le nouveau caractère à mettre à la place. C'est plutôt long.
Il doit y avoir dans les 128 caractères.


Pourquoi un tableau associatif ? Il suffit de deux chaînes de
caractères. D'ailleurs il y a beaucoup moins que 64 caractères
(dans la table iso-latin-1, ils sont tous entre 192 et 255) :
http://www.miakinen.net/isolatin1


Avatar
Davel_x
Le 08/05/2004 04:05 :

Je n'appelle pas ça une fonction simple.
Il faut faire un tableau associatif contenant tous les caractères à
changer et le nouveau caractère à mettre à la place. C'est plutôt long.
Il doit y avoir dans les 128 caractères.


pour les feignasses il y a google :
http://www.phpinfo.net/astuces/astuces100.html

^___^

--
**davel**
http://www.lerpg.com

Avatar
Olivier Miakinen

Il faut faire un tableau associatif [...]


pour les feignasses il y a google :
http://www.phpinfo.net/astuces/astuces100.html


Ce qui est amusant, c'est qu'une solution simple (à base de chaînes) a
été proposée le 16 novembre 2000. Le 12 août 2001, une solution un peu
plus (complexe/complète)¹ a été donnée, toujours à base de chaînes, mais
sans faire référence à celle de 2000. Puis le 19 janvier 2002 a été
publiée une solution à base de tableau associatif, toujours comme si les
articles de 2000 et 2001 n'existaient pas.

Enfin, le 19 juin 2002, une solution à un problème proche des trois
autres a été donnée avec une boucle sur un strtr d'un seul caractère,
toujours sans remarquer que la meilleure solution, à la fois la plus
simple et la plus performante, avait été donnée plusieurs mois auparavant.

Ceci illustre le fait que, d'une part, personne ne lit les articles des
autres, et d'autre part, plus ça va et plus on trouve des solutions
compliquées à des problèmes simples...

¹ rayer la mention inutile