关于php正则替换preg_replace的问题

替换规则如下${user.name}=><?phpecho$this->vars['user']['name']?>${user.group.id}=><?phpecho... 替换规则如下
${user.name} => <?php echo $this->vars['user']['name'] ?>
${user.group.id} => <?php echo $this->vars['user']['group']['id'] ?>
${user.group.detail.description} => <?php echo $this->vars['user']['group']['detail']['description'] ?>
关于使用preg_replace来替换 这样的一个功能 望不吝赐教啊
展开
 我来答
百度网友a5fcb3ef4
2012-04-26 · 超过83用户采纳过TA的回答
知道小有建树答主
回答量:170
采纳率:100%
帮助的人:232万
展开全部
<?php
$str = '
${user.name}
${user.group.id}
${user.group.detail.description}
';
$search = array(
'/\${user(?:\.)([^.]*?)}/i',
'/\${user(?:\.)([^.]*?)(?:\.)([^.]*?)}/i',
'/\${user(?:\.)([^.]*?)(?:\.)([^.]*?)(?:\.)([^.]*?)}/i',
);
$replace = array(
'<?php echo $this->vars["user"]["\1"] ?>',
'<?php echo $this->vars["user"]["\1"]["\2"] ?>',
'<?php echo $this->vars["user"]["\1"]["\2"]["\3"] ?>',
);
$str = preg_replace($search, $replace, $str);

highlight_string($str);
?>
追问
非常感谢您的回答 但是
user name group ==都是不确定的 只不过是一种形式 \w*(\.\w*){1,} 这种形式的
您还能再帮我下嘛
追答
改成这样行了吧
vars["\1"]["\2"] ?>',
'vars["\1"]["\2"]["\3"] ?>',
'vars["\1"]["\2"]["\3"]["\4"] ?>',
);
$str = preg_replace($search, $replace, $str);
highlight_string($str);
?>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式