cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
16 mars 2005 à 13:10
Also know as
Messages postés259Date d'inscriptionsamedi 13 décembre 2003StatutMembreDernière intervention22 novembre 2010
-
2 mai 2007 à 17:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Also know as
Messages postés259Date d'inscriptionsamedi 13 décembre 2003StatutMembreDernière intervention22 novembre 20102 2 mai 2007 à 17:27
Ca c'est pas bête !
D'utiliser cette fonction juste avant de stocker le tout dans une base SQL par exemple.
Ensuite ben si vous voulez qu'on puisse modifier à nouveau le texte, il faudrait créer la fonction inverse pour faire un "edit" du texte.
Ca peut paraitre lourd, mais je pense que ca sera tout de même bien moins lourd que de rappeler cette fonction pour chaque texte.
A méditer :)
@+
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 1 mai 2007 à 01:08
Je pense pas que le $t souffre trop ;)
En revanche, chainer ainsi les preg_* c'est pas forcément très efficace pour traiter un gros fichier.
Je vous conseille, si vous avez peur de trop faire souffrir votre distrib PHP, de se servir de cette fonction juste une fois pour transformer la chaine, et de stocker la chaine transformée...
Cheers
Also know as
Messages postés259Date d'inscriptionsamedi 13 décembre 2003StatutMembreDernière intervention22 novembre 20102 1 mai 2007 à 00:37
Salut tout le monde,
J'avais crée ce style là en utilisant plein de preg_replace, mais je trouve que c'est lourd mais que c'est lourd...
J'avoue j'ai pas cherché à crée mieux depuis car je n'en ai plus eu l'utilité et je n'y connaissais pas grand chose à l'époque.
Mais sérieusement y'a pas "un truc" pour simplifier ca ?
Faire cela, devient très vite lourd pour la page, ca se verra peut-être pas à vu d'oeil, mais bon on prend "t" on lui attribue une nouvelle chaine en remplaçant ceci par cela, PUIS on reprend le nouveau "t",et on recommence, etc.
Perso je trouve qu'a la fin ben le "t"...il à souffert le pauvre, vous croyez pas ?
kegi
Messages postés164Date d'inscriptionjeudi 23 octobre 2003StatutMembreDernière intervention25 août 2008 8 août 2006 à 02:29
un grand merci pour ce bout de script assez utile ;)
Cordialement,
Kevin (kegi@hotmail.com)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 6 juin 2006 à 14:48
** : un include DU fichier ou est stocké la fonction. (pardon pour le double post)
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 6 juin 2006 à 14:46
@ HenvimaL : Tu as du mettre un "include" dans le fichier où est stocké la fonction. Ce fichier est ré-inclus à chaque fois, et php voit que tu essaies de RE-définir la fonction, donc il aime pas. Soluce : tu remplaces par un "include_once", ou mieux, tu sors l'include de ton "while", tu le fais avant, une seule fois, et ca marchera nickel : la fonction sera bien déclarée une seule fois et ca devrait mieux marcher.
A noter que tu peux aussi enregistrer tout ton texte, puis appeler bbtags() sur tout le texte une seule fois.
@ OyyoDams : yep, merci pour le commentaire, en fait les quotes imbriqués doivent fonctionner pour peu qu'ils soient dans le même ordre que le code a priori :/ (avec auteur, sans auteur) Je n'ai pas vraiment le coeur à corriger ca, si ta soluce fonctionne c'est nickel ;)
HenvimaL
Messages postés28Date d'inscriptiondimanche 18 mai 2003StatutMembreDernière intervention 7 juin 2010 5 juin 2006 à 21:05
Salut j'ai un gros souci !!!! lol jviens enfin de comprendre pk ca déconnait.
J'ai plusieurs lignes avec des textes en bbcode enregistré dans une table MYSQL. J'affiche chake ligne de texte en faisant un WHILE ca permet de les faire défiler. Et bref pour convertir mon bbcode en HTML j'inclu dans le WHILE la fonction BBtags. Il l'accepte pas au bout du 2eme texte affiché en gros il aime pas répéter la fonction BBtags plus de 2 fois.
Fatal error: Cannot redeclare bbtags() (previously declared in c:\easyphp\www\ibdm\replace.php:4) in c:\easyphp\www\ibdm\replace.php on line 4
Quelqu'un peut m'aider cimer ...
OyyoDams
Messages postés1Date d'inscriptiondimanche 18 avril 2004StatutMembreDernière intervention30 mai 2006 30 mai 2006 à 09:50
Très bien ce code. Par contre pour la gestion des [quotes] imbriqués, il faut l'appeler plusieurs fois. Voici un exemple de solution:
do
{
$previousmsg=$msg;
$msg=BBtags($msg);
} while ($previousmsg!=$msg);
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 20 oct. 2005 à 13:56
groniar
Messages postés1Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention20 octobre 2005 20 oct. 2005 à 13:44
salutation , merci pour cette petite source , mais j'ai un probleme lorsuqe je tente d'inseré la balise [center]
comment dois je m'y prendre stp ?
merci
kishkaya
Messages postés365Date d'inscriptionsamedi 26 juin 2004StatutMembreDernière intervention17 avril 2008 5 mai 2005 à 14:27
tout d'abord merci pada pour tout ca, j'ai deux trois truc a rajouter :
un
$a = stripslashes($a);
avant le
echo " $a
";
permet de pas avoir les "l\'url"
apres j'aurais mis pour [size] :
$t = preg_replace("!\[size=([^\]]+)\]!mi","",$t);
plutot que d'utiliser le style en px (car si quelqu'un vous post un [size=1000] ca ruine la page)
enfin pour delirer j'ai fait une autre balise que j'avez vu sur un forum et qui m'avait plue :
//[yayou]
$t = preg_replace("/(\[yayou\])(.*?)(\[\/yayou\])/i", ", ----
\\2, ----
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 18 mars 2005 à 18:34
Voilà, faut vérifier que çe soit bon, et là ça prend du temps, contrairement aux regexs :-)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 18 mars 2005 à 18:10
le str_replace() ne touchera pas une balise [url = ...]. Pas de soucis de ce cote la. Pour ca il faut ensuite une regex. Mais il ne bousillera rien puisqu'il n'y touchera pas. Dans ton tableau st_replace tu auras [url], et non pas [url
?
Et evidemment il faut verifier que le code soit bon avant...
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 18 mars 2005 à 17:58
Non, pas de str_replace, si tu ne fermes pas la balise essaie avec un str_replace, bonjour le code html après, sans compter le défaçage du site...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 18 mars 2005 à 17:46
A moi aussi il parait un peu complique lol...et il subsiste encore quelques bugs malheureusement, je viens de voir ca :-( Mais je vais debugger ca tranquille!
Pour les tableaux : ben oui, et puis c'est pas tres complique a utiliser, dans ton cas.
A mon avis tu peux meme limiter encore le temps d'execution :
toutes les balises simples ([url],[code]...) que j'oppose aux balises plus complexes ([url = ...]), tu peux utiliser str_replace() (avec 2 tableaux), c'est plus rapide. Et reserver ensuite un preg_replace() (avec tableau encore lol) pour les tags restants. [url =...] ne sera pas touche par str_replace() puisqu'il ne prendra en compte que [url].
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 18 mars 2005 à 17:40
exactly ;) ton code m'a paru compliqué j'avoue, pour les tableaux je vais voir ca, ca sera certainement plus joli (j'm'en suis un peu servi avec des array_map sur ma source d'après, j'découvre héhé ^^)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 18 mars 2005 à 16:24
Au passage, PaDa, pourquoi n'utilises tu pas un tableau de motifs ? preg_replace() les accepte (tout comme str_replace).
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 17 mars 2005 à 21:01
qui se chevauchent ? aucun pb de parsing a priori si le texte d'entrée est valide... je peux me tromper, fournis un exemple ;) (selon les spécifications sur pbpbb.com, c'est pas au module de remplacement a vérifier la validité de l'entrée, c'est a l'auteur de l'entrée :))
Jayadeva
Messages postés67Date d'inscriptionmercredi 2 juillet 2003StatutMembreDernière intervention 1 septembre 2008 17 mars 2005 à 20:36
Et pour les balises qui se chevauches????
Il va y avoir un pitit problème non?
cs_PaDa
Messages postés1804Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 16 mars 2005 à 18:08
ok j'attends de voir ca avec impatience =]
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 16 mars 2005 à 14:40
Bah je l'ai faite moi-même ma fonction qui colorie le code, bon pour php t'as la fonction highlight_string pour une chaîne, mais bon je me suis fait un petit code qui colorie le JS, HTML, PHP, C++ et VB
fuckya
Messages postés125Date d'inscriptionmercredi 31 mars 2004StatutMembreDernière intervention 8 juin 2006 16 mars 2005 à 13:24
anthomicro, si cest pour colorier du code, jen ai trouvé une bien ;)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 16 mars 2005 à 13:10
Salut :-)
Justement je me suis réalisé une petite fonction de colorisation syntaxique perso pour la V3 de mon site, je verrai pour la poster quand elle sera aboutie :-)
2 mai 2007 à 17:27
D'utiliser cette fonction juste avant de stocker le tout dans une base SQL par exemple.
Ensuite ben si vous voulez qu'on puisse modifier à nouveau le texte, il faudrait créer la fonction inverse pour faire un "edit" du texte.
Ca peut paraitre lourd, mais je pense que ca sera tout de même bien moins lourd que de rappeler cette fonction pour chaque texte.
A méditer :)
@+
1 mai 2007 à 01:08
En revanche, chainer ainsi les preg_* c'est pas forcément très efficace pour traiter un gros fichier.
Je vous conseille, si vous avez peur de trop faire souffrir votre distrib PHP, de se servir de cette fonction juste une fois pour transformer la chaine, et de stocker la chaine transformée...
Cheers
1 mai 2007 à 00:37
J'avais crée ce style là en utilisant plein de preg_replace, mais je trouve que c'est lourd mais que c'est lourd...
J'avoue j'ai pas cherché à crée mieux depuis car je n'en ai plus eu l'utilité et je n'y connaissais pas grand chose à l'époque.
Mais sérieusement y'a pas "un truc" pour simplifier ca ?
Faire cela, devient très vite lourd pour la page, ca se verra peut-être pas à vu d'oeil, mais bon on prend "t" on lui attribue une nouvelle chaine en remplaçant ceci par cela, PUIS on reprend le nouveau "t",et on recommence, etc.
Perso je trouve qu'a la fin ben le "t"...il à souffert le pauvre, vous croyez pas ?
8 août 2006 à 02:29
Cordialement,
Kevin (kegi@hotmail.com)
6 juin 2006 à 14:48
6 juin 2006 à 14:46
A noter que tu peux aussi enregistrer tout ton texte, puis appeler bbtags() sur tout le texte une seule fois.
@ OyyoDams : yep, merci pour le commentaire, en fait les quotes imbriqués doivent fonctionner pour peu qu'ils soient dans le même ordre que le code a priori :/ (avec auteur, sans auteur) Je n'ai pas vraiment le coeur à corriger ca, si ta soluce fonctionne c'est nickel ;)
5 juin 2006 à 21:05
J'ai plusieurs lignes avec des textes en bbcode enregistré dans une table MYSQL. J'affiche chake ligne de texte en faisant un WHILE ca permet de les faire défiler. Et bref pour convertir mon bbcode en HTML j'inclu dans le WHILE la fonction BBtags. Il l'accepte pas au bout du 2eme texte affiché en gros il aime pas répéter la fonction BBtags plus de 2 fois.
Fatal error: Cannot redeclare bbtags() (previously declared in c:\easyphp\www\ibdm\replace.php:4) in c:\easyphp\www\ibdm\replace.php on line 4
Quelqu'un peut m'aider cimer ...
30 mai 2006 à 09:50
do
{
$previousmsg=$msg;
$msg=BBtags($msg);
} while ($previousmsg!=$msg);
20 oct. 2005 à 13:56
' . $1 . '
',$t);
Au début, ca ca doit fonctionner. Enjoy :)
20 oct. 2005 à 13:44
comment dois je m'y prendre stp ?
merci
5 mai 2005 à 14:27
un
$a = stripslashes($a);
avant le
echo " $a
";
permet de pas avoir les "l\'url"
apres j'aurais mis pour [size] :
$t = preg_replace("!\[size=([^\]]+)\]!mi","",$t);
plutot que d'utiliser le style en px (car si quelqu'un vous post un [size=1000] ca ruine la page)
enfin pour delirer j'ai fait une autre balise que j'avez vu sur un forum et qui m'avait plue :
//[yayou]
$t = preg_replace("/(\[yayou\])(.*?)(\[\/yayou\])/i", ", ----
\\2, ----
", $t);
on adapte soi meme ses images, un exemple sur http://pagesperso.laposte.net/profil/balises.php (ca restera pas longtemps) a tester avec [yayou]votre message/yayou .
Voila =) merci encore pour tout ca (;
18 mars 2005 à 18:34
18 mars 2005 à 18:10
?
Et evidemment il faut verifier que le code soit bon avant...
18 mars 2005 à 17:58
18 mars 2005 à 17:46
Pour les tableaux : ben oui, et puis c'est pas tres complique a utiliser, dans ton cas.
A mon avis tu peux meme limiter encore le temps d'execution :
toutes les balises simples ([url],[code]...) que j'oppose aux balises plus complexes ([url = ...]), tu peux utiliser str_replace() (avec 2 tableaux), c'est plus rapide. Et reserver ensuite un preg_replace() (avec tableau encore lol) pour les tags restants. [url =...] ne sera pas touche par str_replace() puisqu'il ne prendra en compte que [url].
18 mars 2005 à 17:40
18 mars 2005 à 16:24
http://www.phpcs.com/code.aspx?ID=30110
qui se charge lui de verifier qu'un texte contenant du bbcode soit bien forme.
Au passage, PaDa, pourquoi n'utilises tu pas un tableau de motifs ? preg_replace() les accepte (tout comme str_replace).
17 mars 2005 à 21:01
17 mars 2005 à 20:36
Il va y avoir un pitit problème non?
16 mars 2005 à 18:08
16 mars 2005 à 14:40
16 mars 2005 à 13:24
16 mars 2005 à 13:10
Justement je me suis réalisé une petite fonction de colorisation syntaxique perso pour la V3 de mon site, je verrai pour la poster quand elle sera aboutie :-)
a ++