|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 145 ![]() |
Bonjour,
Je cherche à enlever les articles (le, la, les) d'une chaine récupérée par une requête mysql. J'ai bien pensé à la fonction str_replace : Code :
$chaine= str_replace(array("LE ", "LA ", "LES "), "", $chaine); Quelqu'un a une astuce ? Peut-être qu'il existe une méthode pour intervenir directement sur le résultat de la requête en transformant "La Solution" en "Solution (la)" (là, ce serait la classe Merci d'avance de vos idées !
__________________
Le mieux n'est pas forcément l'ennemi du bien. |
|
|
00
|
|
|
#2 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Utilise des expressions régulières.
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 145 ![]() |
Oui, en effet, avec :
Code :
$chaine = eregi_replace("^LE |^LA|^lES ", "", $chaine); D'après toi, pour mettre l'article en fin de chaine, il faut passer par une condition ?
__________________
Le mieux n'est pas forcément l'ennemi du bien. |
|
|
00
|
|
|
#4 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
eregi est obsolète.
utilise preg_replace. tu peux effectivement capturer ton article et le replacer. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 145 ![]() |
C'est corrigé, merci.
Tu veux dire avec un if ? ou avec une regex ?
__________________
Le mieux n'est pas forcément l'ennemi du bien. |
|
|
00
|
|
|
#6 | ||
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Tu peux te servir des élements capturées dans ton expression dans ton remplacement :
Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 145 ![]() |
Merci encore !
Ça marche nickel pour un article (LE) : Code :
$chaine = preg_replace("#(^LE) (.+)#", "\\2 (\\1)", $chaine); Code :
$chaine = preg_replace("#(^LE) (.+)|(^LES) (.+)#", "\\2 (\\1)", $chaine);
__________________
Le mieux n'est pas forcément l'ennemi du bien. |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
je ferai plutôt
Code :
preg_replace('/^(l(?:es?|a|\'))\s?+(.*)$/i', '\2 (\1)', $chaine);
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 145 ![]() |
Merci stealth35, ça marche parfaitement bien.
En revanche, la lecture est plus difficile pour moi. Je vais relire le manuel pour décoder ça Merci encore.
__________________
Le mieux n'est pas forcément l'ennemi du bien. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com