大家好,又见面了,我是你们的朋友全栈君。
匹配特定格式字符串,动态替换数据。
<?php $templ = "{username}是个大{adj}比{end}";//测试字符串 //对应数据 $datas = [ 'username' => '我', 'adj' => '帅', 'end' => '。', ]; //不需要替换的字符串 $noMatchs = ['end']; function render($datas = array(), $templ = '', $noMatchs = array()) {
//preg_replace_callback() //执行一个正则表达式搜索并且使用一个回调进行替换 return preg_replace_callback('/\\{([\w\-\/]+)\\}/', function ($matches) use ($datas, $noMatchs) {
//$matches[1]返回如:username $name = $matches[1]; if (in_array($name, $noMatchs)) { //$mathches[0]返回如:{end} return $matches[0]; } return array_key_exists($name, $datas) ? $datas[$name] : ''; }, $templ); } var_dump(render($datas, $templ, $noMatchs)); //输出结果为:'我是个大帅比{end}'
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142524.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...