Erreur Unknown modifier '/' avec preg_replace - PHP - Programmation
Marsh Posté le 27-11-2008 à 15:36:24
$news = preg_replace("/\[url=".$liens."\]".$text_liens."\[/url\]/", "<a target='_blank' href='".$liens."'>".$text_liens."</a>", $news);
Le / de [/url] doit être backslashé
Marsh Posté le 27-11-2008 à 15:44:30
yellu a écrit : $news = preg_replace("/\[url=".$liens."\]".$text_liens."\[/url\]/", "<a target='_blank' href='".$liens."'>".$text_liens."</a>", $news); |
C'est à dire?
Marsh Posté le 27-11-2008 à 17:11:42
BackSlasher c'est protéger un caractère spécial dans une chaine en lui collant un BackSlash aux fesses => \
Donc si on protège le mot [/url] dans le contexte d'une regexp ça donne \[\/url\] car [, ] et / sont des caractères spéciaux.
Marsh Posté le 27-11-2008 à 17:31:10
Ma fonction avec l'ajout du backslashe:
$news = preg_replace("/\[url=".$liens."\]".$text_liens."\[\/url\]/", "<a target='_blank' href='".$liens."'>".$text_liens."</a>", $news);
me retourne cette erreur:
Warning: preg_replace(): Unknown modifier '/' in /var/www/bo/admincompta/BO/website/test_bibit_blacklist/news_insert_action.php on line 15
Marsh Posté le 27-11-2008 à 17:37:49
dans tes variables $liens et $text_liens il doit y avoir des choses à backslasher aussi donc met leur un addslashes, et encore ça suffira surement pas car ça backslashera pas les [] () ...
Pourquoi tu n'utilises pas les variables internes aux regexps avec les parenthèses capturantes \1, \2, etc, ça simplifierai le problème ?
Marsh Posté le 27-11-2008 à 17:46:52
A présent je n'ai plus de message d'erreur mais mon script boucle et le preg_replace de la variable $news ne s'effectue pas.
Voici mon code:
Code :
|
Marsh Posté le 27-11-2008 à 18:19:47
je verrais plutot un code de ce style :
Code :
|
avec le premier (.+) qui pourrait être remplacé par une regexp plus complexe adaptés aux URLS, mais ça marche qd même avec (.+)
Marsh Posté le 27-11-2008 à 15:22:15
Bonjour,
lorsque j'exécute cette fonction:
$news = preg_replace("/\[url=".$liens."\]".$text_liens."\[/url\]/", "<a target='_blank' href='".$liens."'>".$text_liens."</a>", $news);
PHP me retourne cette erreur:
Warning: preg_replace(): Unknown modifier '/' in /var/www/bo/admincompta/BO/website/test_bibit_blacklist/news_insert_action.php on line 15
Je n'arrive pas à trouver pourquoi cette erreur apparait...
Merci