Convertir des tage list en html

Par lakamark, il y a 12 ans


Bonjour, J'ai un petit problème avec les tags pour les liste de BBcode En bbcode j'ai des tags et - pour généré le code html Elle ne détecte par les balise ** Le résultat est que j'aimerais trouver l'expression régulière pour convertir [code]

  1. exemple

[/code] Merci de votre aide

4 réponses

Vallyan, il y a 12 ans

[code] string = '[list][\*]test[/ \*][\*]test2[/ \*][/ list]'; $patternUL = '/(\[list\])(.+?)(\[\/list\])/i'; $patternLI = '/(\[\\*\])(.+?)(\[\/\\*\])/i'; echo preg\_replace(patternUL, '

2', preg\_replace(patternLI, '- $2
', $string)); [/code] J'ai mis un espace dans les bbcodes pour qu'ils ne soient pas interprété, enleve-les bien entendu quand tu testeras.

lakamark, il y a 12 ans

Je suis mal exprimer c'est plus comme de se genre :
list ]
teste
teste
teste
list ]

*]
item
item
item
/*]

SevDevSar, il y a 12 ans

je ces pas si ces bien ce que tu veux mes voila un système mais a adapter a ton code: [code] string = "Ces juste un exemple a adapter a ton système"; //recupere le premier et remplace par [\*] $first = strpos(string, ''); total = strlen(string) - 6; stop = $first - $total; $string = substr\_replace(string, '- ', first, $stop); //recupere le dernier et remplace par [/\*] $last = strrpos(string, ''); total = strlen(string) - 6; stop = $last - $total; $string = substr\_replace(string, '', $last, $stop); echo $string . "
"; [/code] et sa te donne sa : Ces juste [*] un exemple [/*] a adapter a ton système

SevDevSar, il y a 12 ans

mais si tu a plusieurs dans le même string il y a aussi cette solution, il y a surement une meilleur manière mes je suis juste débutant. [code] string = "ul ... /ul ul ... /ul ul ... /ul"; // calcule le nombre de fois que et dans $string. $count\_of\_list\_in\_string = substr\_count(string, ""); // divise en deux count\_of\_list\_in\_string pour pouvoirs utiliser la for() loop $count = $count\_of\_list\_in\_string / 2; // ce code différent du code que je tes donner en premier, cette fois il recherche deux fois de suit le premier et il remplace le premier par [\*] et le deuxième [/\*] et il fait sa $count fois. for (i = 0; $i "; [/code] et sa te donne sa : ul [*] ... [/*] /ul ul [*] ... [/*] /ul ul [*] ... [/*] /ul