Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1593 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Besoin d'aide pour syntaxe expression régulière

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Besoin d'aide pour syntaxe expression régulière

n°1724648
ZeBix
edit > preview
Posté le 25-04-2008 à 17:54:24  profilanswer
 

Bonjour tous,  
 
Voilà je voudrais utiliser preg_match() pour comparer d'une part une array de strings dont les éléments sont composés de la traduction d'un mot en plusieurs langues (reliées par des tirets) , et de l'autre un label dans une langue unique.
 
Par exemple :  

Code :
  1. $myarray = ("Immobilier-Immobilien","Voyages-Reizen","Avis-Berichten" );
  2. $mystring = "immobilier"
  3. foreach ($myarray as $item)
  4. { if (preg_match("/".$mystring.'/i',$item))   ; // preg_match case insensitive
  5. echo "OK!";
  6. }


 
Cet exemple simplifié de script fonctionne bien et me retourne un "OK!".
 
Mais voilà, il s'avère que pour une raison inutile d'expliquer ici, les éléments de $myarray sont écris sans caractères accentués.
Or, si je prends comme $mystring la valeur en néerlandais de "immobilier" je tombe sur "immobiliën" avec un e tréma. Evidemment le preg_match ne va plus.
 
Je suis à la recherche d'une syntaxe pour faire passer tous mes ëêéè pour des e, tous les äá pour des a, etc. mais je sais pas trop comment faire (je suis un total noob en regexp ..  :( )  
 
quelqu'un peut me tuyauter svp ?  :hello:


Message édité par ZeBix le 25-04-2008 à 18:30:06
mood
Publicité
Posté le 25-04-2008 à 17:54:24  profilanswer
 

n°1724650
CyberDenix
Posté le 25-04-2008 à 18:01:49  profilanswer
 

ëêéè :
 
Tu mets [ëêéè]


---------------
Directeur Technique (CTO)
n°1724653
ZeBix
edit > preview
Posté le 25-04-2008 à 18:03:44  profilanswer
 

Oki ça je connaissais, mais je veux dire comment faire pour que dans le preg_match, il considère [ëêéè] comme un [e] ?

n°1724657
CyberDenix
Posté le 25-04-2008 à 18:07:04  profilanswer
 

Soit dans ton preg_match tu utilises l'expression Immobili[ëêéèe]n    // Attention, j'ai mis le e dedans
 
Soit en amont tu fais un preg_replace de ë, ê, é, è, par e


Message édité par CyberDenix le 25-04-2008 à 18:10:05

---------------
Directeur Technique (CTO)
n°1724666
ZeBix
edit > preview
Posté le 25-04-2008 à 18:21:41  profilanswer
 

Hehe merci :) - dans le preg_match j'utilise une variable donc je peux pas hard-coder le [ëêéèe] ..

 

Grâce à "preg_replace" j'ai eu des résultats satisfaisants sur Google et apparemment pas mal de gens conseillent d'utiliser strtr, je vais plutôt me diriger vers cette solution plus simple je pense :)

 

Merci pour le coup de main

 

*edit* Voilà la fonction :)

 
Code :
  1. function FlattenAccents($str)
  2. {
  3.     return strtr($str,"âäàêëéèîïôöüùç","aaaeeeeiioouuc" );
  4. }
 

C'est pas le plus clean du monde, mais ça marche vite et bien pour ma situation, et en cas de caractère supplémentaire (genre les majuscules accentuées mais je pense pas que j'en aie) j'ai qu'à rajouter :)

 


Message édité par ZeBix le 25-04-2008 à 18:30:27

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Besoin d'aide pour syntaxe expression régulière

 

Sujets relatifs
[CSS] Style different pour chaque élément du menu [résolu][Résolu 2 fois ;)] script PHP liste deroulante et base de données
problème avec un formulaire [résolu][ PHP ] [ RESOLU ] Envoyer des mail hotmail avec php
[RESOLU] [D7] AllocMem ne fonctionne plus ![Resolu] executer un .bat dans une classe java
Aide sous Excell VBA[resolu] Ajouter l'autocomplétion sur un raw_input()
Plus de sujets relatifs à : [Résolu] Besoin d'aide pour syntaxe expression régulière


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR