preg_replace et balises à arguments variables - PHP - Programmation
Marsh Posté le 28-10-2004 à 09:05:41
non c'est nul ton truc, tout le monde s'en fout
Marsh Posté le 28-10-2004 à 09:14:16
pas besoin de lunette pour voir ue c'est ridicule
Marsh Posté le 28-10-2004 à 09:15:31
on sait jamais, il pourrait y avoir une barrière
bon, qu'est ce qui merde avec mes regex ?
comment on fait pour detecter ces 3 putains de cas ?
Marsh Posté le 28-10-2004 à 09:18:31
il est pas beau ton bbcode
Marsh Posté le 28-10-2004 à 09:20:23
et bien propose moi une meilleure facon
je pourrais faire pareil genre
|
Marsh Posté le 28-10-2004 à 09:22:33
oué, la, c'est moins pire
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
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