关于替换 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;
?>
想得到效率更高的代码,请各大侠指教!
...全文
65 点赞 收藏 2
写回复
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);
?>
回复 点赞
发动态
发帖子
基础编程
创建于2007-09-28

9733

社区成员

14.0w+

社区内容

从PHP安装配置,PHP入门,PHP基础到PHP应用
社区公告
暂无公告