Une quote dans une quote [regexp] - PHP - Programmation
Marsh Posté le 24-11-2003 à 18:34:50
question tres interessante, je serais curieux de voir une regex qui fonctionne sur :
Citation :
|
Citation : |
La seule solution que j'ai trouvée est de parser a la main a coup de strpos substr_replace. Ca marche du tonnerre mais c'est assez fastidieux.
Marsh Posté le 24-11-2003 à 18:38:35
preg_replace("/\[quote=(.*?)\](.*?)\[/quote\]/si",'<div>'.$1.' a écrit:<br />'.$2.'</div>',$text);
devrait fonctionner
Marsh Posté le 24-11-2003 à 18:46:14
gizmo a écrit : preg_replace("/\[quote=(.*?)\](.*?)\[/quote\]/si",'<div>'.$1.' a écrit:<br />'.$2.'</div>',$text); |
en effet
merci bcp je vais decortiquer tout ca
Marsh Posté le 24-11-2003 à 18:47:31
ha mais nan en fait
ca marche qu'avec 2 quote mais si les utilisateur decident de faire un championnat de quote je suis mal
Marsh Posté le 24-11-2003 à 18:52:16
wai en fait ma regexp fonctionnait nikel mais faut que j'en mette une par quote.
Si je met une fois
$ToPreg=preg_replace("#\[quote=(.*?)\](.*?)\[/quote\]#si",'<center>
<table style="width:550px; border:none;"><tr><td style="padding:1px; font-weight:bold; border:none;">$1 wrote :</td>
</tr><tr><td style="background-color : #5F5F5F; padding:4px">$2</td></tr></table></center>', $ToPreg);
ca me fera qu'un quote, si j'en met 2 ca en fera 2...
Marsh Posté le 24-11-2003 à 18:57:02
euh... et tu vas la foutre dans une boucle?
A mon avis, le plus simple serait d'utiliser preg_replace_callback.
Marsh Posté le 24-11-2003 à 19:07:13
hm wai jamais utilisé cette fonction et il me chie a la geule
Code :
|
Code :
|
je voit pas ce qu'il a d'invalide
Marsh Posté le 24-11-2003 à 19:11:57
ceci fonctionne :
Code :
|
Marsh Posté le 24-11-2003 à 19:13:38
chacal_one333 a écrit : |
rtfm!
avec preg_replace_callback(), le 2ème argument doit être une fonction de callback
Marsh Posté le 24-11-2003 à 19:19:22
Mais je ne garantis pas que ce soit la solution la plus élégante/efficace?
Marsh Posté le 24-11-2003 à 19:25:09
Ceci est déjà un peu mieux :
Code :
|
Ca évite de relancer un preg_match à chaque fois?
Marsh Posté le 24-11-2003 à 18:22:22
hmmm pas tres facile la.
Grace a l'autre topic sur les regex j'avais eu assez de bout de code pour comprendre comment monter un systeme de quote assez banal a savoir [quote=le_nom]blabla[/quote] qui donnais a peu pres le meme resultat qu'ici.
Par contre si je fait [quote=le_nom][quote=le_nom]blabla[/quote]blabla[/quote] la ca part en vrille et il considerre le premier [/quote] comme etant la fin du premier [quote] et m'inscrivant ainsi le dernier quote comme un message banale
le resultat ici : http://chak.serveftp.com/chak_foru [...] at=2&sub=2
ma reg :
help
Message édité par Profil supprimé le 24-11-2003 à 18:22:44