problème avec les la transformation de lien en BBCode

problème avec les la transformation de lien en BBCode - PHP - Programmation

Marsh Posté le 10-12-2003 à 10:30:32    

Bonjour à tous :)  
 
J'utilise une fonction permettant de "BBcoder" du texte. Je m'explique :  
 
j'ai ce texte dans une news :  
 

Code :
  1. Rendez-vous sur ZoneHD


 
le problème est que pour les URL, je suis obligé de faire :
 
 

Code :
  1. $message = str_replace("[URL=","<A HREF=\"",$message);
  2. $message = str_replace("[/URL]","</B></A>",$message);
  3. $message = str_replace("]","\" target=\"_blank\"><B>",$message);


 
le problème se situe dans la troisième ligne : car ca modifie tous les ] lorsqu'ils ne sont pas dans des tags BBCode !
 
quelqu'un aurait une solution pour corriger cela ?


Message édité par moon06 le 10-12-2003 à 11:01:09

---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 10-12-2003 à 10:30:32   

Reply

Marsh Posté le 10-12-2003 à 10:34:45    

faut utiliser les regex  

Code :
  1. $message = preg_replace("#\[url=(http|https|ftp|mms)://([a-zA-Z0-9:\./_~\#=&?\.:]+)\](.*?)\[/url\]#i","<a href=\"$1\">$2</a>", $message);


J'ai peut etre oublié quelques caracteres speciaux utiles dans les url.


Message édité par karamilo le 10-12-2003 à 11:07:51
Reply

Marsh Posté le 10-12-2003 à 10:38:42    

ah ? merci bcp quand même !
 
quelqu'un d'autre pourrait-il fignoler ? (je vais quand même tester entre temps :))


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 10-12-2003 à 10:46:13    

ça ne marche pas apparament, ca me retourne le code tel quel ! :/


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 10-12-2003 à 10:47:20    

Code :
  1. $ToPreg=preg_replace('#\[url=(http|https|ftp|mms)(\:\/\/[a-zA-Z0-9_.-]+.[a-zA-Z0-9]+)\](.*?)\[/url\]#si', '<a href="$1$2" target="_blank">$3</a>', $ToPreg);

j'avais ca et ca marchait

Reply

Marsh Posté le 10-12-2003 à 10:55:13    

je comprends pas pk ca marche pas chez moi ... :(


---------------
- Si les cons volaient, il ferait nuit tout le temps ! -
Reply

Marsh Posté le 10-12-2003 à 10:56:44    

Citation :

Rendez-vous sur [URL=http://www.zonehd.net]ZoneHD[/B]

c normal le B?

Reply

Marsh Posté le 10-12-2003 à 11:01:44    

non ! sinon, dernière nouvelles, ca marche mais dès que j'ai des ? ou = ou & dans mon lien ca marche pas ! que manque-t-il ?

Reply

Marsh Posté le 10-12-2003 à 11:08:17    

http://213.245.122.241/~karamilo/test.php
 

Code :
  1. $message = '  Rendez-vous sur ZoneHD';
  2. $message = preg_replace("#\[url=(http|https|ftp|mms)://([a-zA-Z0-9:\./_~\#=&?\.:]+)\](.*?)\[/url\]#i","<a href=\"$1://$2\">$3</a>", $message);
  3. echo $message;

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed