Se connecter avec
S'enregistrer | Connectez-vous

[PHP] ereg dans un code BBCode

Dernière réponse : dans Programmation

Bonjour, je suis en train de faire un site dynamique en php et MySQL sur le tuning pc au Québec et je suis en train de faire les modules pour faire du code BBCode dans les articles et news du site web.

Pour les balises et [/url] sa va bien mais je suis rendu à et j'ai pas mal de misère. Voici mon code eu complet :

  1. function Remplacer_url($urls)
  2. {
  3. $htmlurl=array();
  4.  
  5. for ($i=0; $i < count($urls); $i++)
  6. {
  7. $url = substr($urls[$i], strpos($urls[$i], "=")+1, strpos($urls[$i], "]")-5);
  8. $htmlurl = "<a href='".$url."'>";
  9. }
  10. return($htmlurl);
  11. }
  12.  
  13. function Remplacer($texte2)
  14. {
  15. $texte2 = ereg_replace("\[b\]", "<b>", $texte2);
  16. $texte2 = ereg_replace("\[/b\]", "</b>", $texte2);
  17. $texte2 = ereg_replace("\[i\]", "<i>", $texte2);
  18. $texte2 = ereg_replace("\[/i\]", "</i>", $texte2);
  19. $texte2 = ereg_replace("\[u\]", "<u>", $texte2);
  20. $texte2 = ereg_replace("\[/u\]", "</u>", $texte2);
  21. $texte2 = ereg_replace("\[/url\]", "</a>", $texte2);
  22. echo $texte2."<br>";
  23. if (ereg("^(\[url=).*(\])$", $texte2, $urls))
  24. {
  25. $newurls=array(Remplacer_url($urls));
  26. for ($e=0; $e < count($urls); $e++)
  27. {
  28. $urls[$e] = ereg_replace("\[", "\[", $urls[$e]);
  29. $urls[$e] = ereg_replace("\]", "\]", $urls[$e]);
  30. $urls[$e] = ereg_replace("\.", "\.", $urls[$e]);
  31. $texte2 = ereg_replace($urls[$e], $newurls[$e], $texte2);
  32. }
  33. }
  34. return($texte2);
  35. }
  36.  
  37. $texte = "je parle [b]français[/b] [u]et je suis[/u] [img=C:\Documents and Settings\Administrateur\Bureau\qc.jpg] [i]québécois[/i] pfff. [url=http://www.jackypc.com]blabla[/url] héhé";
  38. echo Remplacer($texte);

C'est la partie du if pour le
qui ne fonctionne pas comme il le faut, il n'identifie pas les url...
  1. if (ereg("^(\[url=).*(\])$", $texte2, $urls))

Si quelqu'un pourrait m'aider sa me serait bien utile.

Autres pages sur : php ereg code bbcode

Lassé par la pub ? Créez un compte

le 's' c'est pour considérer les blancs et retour à la ligne comme des caractères et le 'i' pour dire qu'il ne fait pas de différence entre majuscule et minuscule.

les $x c'est pour dire de reprendre tout ce qu'il y a dans la xieme parenthèse.
Lassé par la pub ? Créez un compte