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