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]

  • exemple
  1. exemple

[/code] Merci de votre aide

4 réponses


[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
Auteur

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

*]
item
item
item
/*]

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

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