preg_replace et balises à arguments variables

preg_replace et balises à arguments variables - PHP - Programmation

Marsh Posté le 27-10-2004 à 22:25:45    

Bonsoir,
 
Ca fait un moment que je me prends la tête, et je n'arrive pas à faire ce que je veux.
 
Mon idée, c'est de faire un bbcode like pour les liens.
Je souhaite avoir trois formes:
 


FORME 1
[url]www.machin.com[/url] qui sera remplacé par :  
<a href="http://www.machin.com">www.machin.com</a>
 
FORME 2
[url]www.machin.com,Cliquez ici pour machin[/url] qui sera remplacé par :
<a href="http://www.machin.com">Cliquez ici pour machin</a>
 
 
FORME 3
[url]www.machin.com,Cliquez ici pour machin,1[/url] qui sera remplacé par :
<a href="http://www.machin.com" onclick="window.open('http://www.machin.com'); return false;">Cliquez ici pour machin</a>


 
J'ai donc faire le code suivant :


<?
 
  $txt = "[url]www.machin.com[/url]\n\n[url]www.machin.com[/url] [url]www.machin.com[/url]\n\n[url]www.machin.com,Le lien[/url]\n\n[url]www.machin.com,Le lien[/url] [url]www.machin.com,Le lien[/url]\n\n[url]www.machin.com,Le lien dans une nouvelle fenetre,1[/url]\n\n";
 
  $txt = strip_tags($txt);
 
  $search = array
  (
    '/\[url\](.*?),(.*?),([1]{1})\[\/url\]/si',    
    '/\[url\](.*?),(.*?)\[\/url\]/si',  
    '/\[url\](.*?)\[\/url\]/si'
 
  );
 
  $replace = array
  (
    '<a href="http://\\1" onclick="window.open(\'\\1\'); return false;">\\2</a>',
    '<a href="http://\\1">\\2</a>',
    '<a href="http://\\1">\\1</a>'
  );
  $nouveau = preg_replace($search , $replace, $txt);
 
 
 
/* Affichages */
 
  echo '<hr />';
  echo 'Original<br />';
  echo '<hr />';
  echo nl2br(htmlentities($txt));
  echo '<hr />';
  echo 'Apres replace';
  echo '<hr />';
  echo nl2br(htmlentities($nouveau));
  echo '<hr />';
  echo 'Resultat<br />';
  echo '<hr />';
  echo nl2br($nouveau);
?>


 
Qui est bien sur foireux :D
Quel est le pb avec mes regex ?
 
Merci pour votre aide, moi j'en ai marre, je vais me coucher.
A demain :)


Message édité par spark le 27-10-2004 à 22:26:41
Reply

Marsh Posté le 27-10-2004 à 22:25:45   

Reply

Marsh Posté le 28-10-2004 à 08:12:23    

Toujours pas d'idées ?

Reply

Marsh Posté le 28-10-2004 à 09:05:41    

non c'est nul ton truc, tout le monde s'en fout :o


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 28-10-2004 à 09:13:16    

toi tu remets tes lunettes avec de lire mes topics :D

Reply

Marsh Posté le 28-10-2004 à 09:14:16    

pas besoin de lunette pour voir ue c'est ridicule :o


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 28-10-2004 à 09:15:31    

on sait jamais, il pourrait y avoir une barrière :o
 
bon, qu'est ce qui merde avec mes regex ?
 
comment on fait pour detecter ces 3 putains de cas ?

Reply

Marsh Posté le 28-10-2004 à 09:18:31    

il est pas beau ton bbcode :o


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Marsh Posté le 28-10-2004 à 09:20:23    

et bien propose moi une meilleure facon :o
 
je pourrais faire pareil genre


[url="moncul.com"][/url]
[url="moncul.com"]Mon cul[/url]
et pour la nouvelle fenetre ?
[url="moncul.com",1]Mon cul dans une nouvelle fenetre[/url] ?


Message édité par spark le 28-10-2004 à 09:20:44
Reply

Marsh Posté le 28-10-2004 à 09:22:33    

oué, la, c'est moins pire


---------------
NP: HTTP Error 764 Stupid coder found
Reply

Sujets relatifs:

Leave a Replay

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