|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre actif
![]() Inscription : octobre 2006 Messages : 297 ![]() |
Bonjour,
J'ai créer un MiniWiki sur lequel, lorsqu'on veut créer une page on entoure son nom de deux parenthèses. Exemple ((nouvelle page)). Mon expression régulière transforme le regex en lien. Voici mon regex : Code :
Je me prend la tête sur ce regex depuis quelques jours..... Quelqu'un peut-il m'aider ? Merci d'avance |
||
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : octobre 2006 Messages : 297 ![]() |
Bon, je vous tiens au courrant
J'ai trouvé ça : Code :
$text = ereg_replace("\(\((('?[[:alnum:]|[:space:]^\)\n\)])*)\)\)", "<a href=\"".$self."?\\1\">\\1</a>", $text); Je continu à chercher en attendant de l'aide
|
|
|
00
|
|
|
#3 |
|
Membre actif
![]() Inscription : octobre 2006 Messages : 297 ![]() |
Suite ...
Le disfonctionnement ne vient pas du nombre d'espace !!!!! Mais des caractères accentués !!!! Je cherche |
|
|
00
|
|
|
#4 |
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Quelques remarques :
Vous vouliez les avoir ou les espaces (devant, derrière, dans le nom) ? Edit : PCRE se base sur les locales pour inclure les caractères accentués, ça fait une raison de plus pour utiliser ces fonctions. |
|
|
00
|
|
|
#5 | |
|
Membre actif
![]() Inscription : octobre 2006 Messages : 297 ![]() |
Bon, je comprend pas tout mais je vais essayer de vous expliquez clairement.
Voici où ça se passe : http://wiki.arizona-dream.com/tests.php?Essai Rappel de ce que je souhaite : Fiare un lien sur toute chaines de caractère commençant par (( et finissant par )) La chaine à l'intérieur des double parenthèse peut contenir :
Rappel du problème : Quand il y a un caractère accentué, cela ne fonctionne plus Vous me dites : Citation:
Je sais que les POSIX sont déprécier mais j'ai déjà tellement de mal avec que j'ai pas envie dde récrire un PCRE Si vous n'avez pas la solution, j'essairai un PCRE |
|
|
|
00
|
|
|
#6 | ||
|
En attente de confirmation mail
![]() Inscription : juin 2002 Messages : 6 164 ![]() |
Citation:
Code :
$text = preg_replace("#\(\(([[:alnum:][:space:]]+)\)\)#", "<a href=\"".$self."?$1\">$1</a>", $text); Code :
$text = preg_replace("#\(\(([[:alnum:]][[:alnum:][:space:]]+)\)\)#", "<a href=\"".$self."?$1\">$1</a>", $text); Maintenant si vous voulez garder les fonctions ereg, il faut ajouter les codes hexadécimaux des caractères accentués ... Citation:
Je voulais simplement m'assurer de la signification de votre classe, le navigateur n'ayant rien à voir là-dedans, PHP est exécuté côté serveur.
|
||
|
|
00
|
|
|
#7 |
|
Membre actif
![]() Inscription : octobre 2006 Messages : 297 ![]() |
Merci julp pour votre aide.
Quand vous m'avez parlé de IE je commençais à douter de vos compétences. Mais, pour avoir vérifier, cela en dit long sur mon degré de desespoir Mais revenons à mes moutons : Votre PCRE fonctionne parfaitement mais il à le même comportement que mon POSIX. A savoir que, quand il y a un caractère accentué, il ne fonctionne pas !!!! Que dois je lui ajouté ???????? |
|
|
00
|
|
|
#8 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Il faut remplacer
Par A tester mais normalement ça devrait être bon ^^ |
|
|
00
|
|
|
#9 |
|
Membre actif
![]() Inscription : octobre 2006 Messages : 297 ![]() |
Milles mercis à vous nobles développeurs Ca fonctionne parfaitement
|
|
|
00
|
|
|
#10 |
|
Membre chevronné
![]() Étudiant Inscription : août 2005 Messages : 632 ![]() |
Peut fonctionner aussi à la limite mais ça dépend de ton serveur ^^
Disons que si ça fonctionne ça t'évite de te taper la liste entiere des caractères accentués :p |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com