php 使用preg_replace 输出php格式的<?= *?> 有问题

hyxj1220 发布于 2012/02/27 14:27
阅读 372
收藏 0
PHP
$str = "<!--keyword.ba.tag-->##aaaa##!--system.test1.tag-->";
$pattern = array("/<!--keyword\.(.*)-->/U","/<!--system\.(.*)-->/U","/##(.*)##/U");
$search = array("<\?=\$context->get('keyword','\\1') ?>","<\?=\$context->get('system','\\1') ?>","<\?=\$context->emoji('\\1') ?>");
echo preg_replace($pattern,$search,$str);

输出:<\?=$context->get('keyword','ba.tag') ?> <\?=$context->emoji('aaaa') ?><\?=$context->get('system','test1.tag') ?>

我要的结果:<?=$context->get('keyword','ba.tag') ?> <?=$context->emoji('aaaa') ?><?=$context->get('system','test1.tag') ?>

即不要?之前的\。也许你会说吧$search中对应的\去掉,可是我去掉之后就是这样的:

get('keyword','ba.tag') ?> emoji('aaaa') ?>get('system','test1.tag') ?>

完全不是我想要的了 ,各位技术达人 ,有没有办法输出标准php格式的字符串?先谢谢了。

加载中
0
ClownFish
ClownFish
用单引号,你想输出啥就输出啥
hyxj1220
hyxj1220
thank you 。the answer is wrong
0
hyxj1220
hyxj1220
$str = array("<!--keyword.ba.tag-->","##aaaa##","<!--system.test1.tag-->"); 
$parten = array("/<!--keyword\.(.*)-->/U","/<!--system\.(.*)-->/U","/##(.*)##/");
$search = array("<?=\$context->get('keyword','\\1') ?>","<?=\$context->get('system','\\1') ?>"," <?=\$context->emoji('\\1') ?>");
echo htmlspecialchars(implode (", ", preg_replace($parten,$search,$str)));

ok

返回顶部
顶部