关于替换 preg_replace 字串的问题

afoskoo 2005-03-23 10:09:24
$body="姓名:{name/},年龄:{age/},地址:{address/},邮编:{zip/}";
$array=array(
"name"=>"李世民",
"age"=>26,
"address"=>"三元裏",
"zip"=>"123456"
);

希望将$body通过$array,替换为 姓名:李世民,年龄:26,地址:三元裏,邮编:123456
如果$body为:
$body="你好!{name/},这里是{address/}.";
的话,就替换为 你好!李世民,这里是三元裏.

我现在的写法是
<?
while(preg_match("/\{([^\/}]+)\/\}/",$body,$ary))
$body=preg_replace("/\{".$ary[1]."\/\}/",$array[$ary[1]],$body);
echo $body;
?>
想得到效率更高的代码,请各大侠指教!
...全文
118 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangmaoe 2005-03-23
  • 打赏
  • 举报
回复
厉害!
xuzuning 2005-03-23
  • 打赏
  • 举报
回复
<?php
$body="姓名:{name/},年龄:{age/},地址:{address/},邮编:{zip/}";
$array=array(
"name"=>"李世民",
"age"=>26,
"address"=>"三元裏",
"zip"=>"123456"
);

foreach($array as $k=>$v) {
$p[] = '/'.preg_quote ('{'.$k.'/}', "/").'/';
$r[] = $v;
}
echo preg_replace($p,$r,$body);
$body="你好!{name/},这里是{address/}.";
echo preg_replace($p,$r,$body);
?>

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧