我在写一个基于主题的脚本的过程中,需要一种方法来替换“变量”或令牌,没有被脚本替换。
格式为:
^_variablename_^因此,假设在处理完以下内容之后,使用变量: name=Adam、Occupation=programmer
Hello, my name is ^_title_^^_name_^, and I work as a ^_occupation_^.我们将留下^_title_^仍然在原地。
我需要一种方法来摆脱它们,而不需要知道“变量”的名称。
提前感谢:)
发布于 2012-09-03 16:59:54
再次处理:
$str = 'Hello, my name is ^_title_^Adam, and I work as a programmer.';
$str = preg_replace('/\^_(\w+)_\^/', '', $str);
echo $str;Codepad
发布于 2012-09-03 17:01:44
$str = 'Hello, my name is ^_title_^Adam, and I work as a programmer.';
echo preg_replace('/^_[\w_-]+_^/i', '', $str);发布于 2012-09-03 17:06:30
在替换变量时尝试使用preg_replace_callback,这样您就可以简单地忽略不能在中替换的变量:
$input = 'Hello, my name is ^_title_^^_name_^, and I work as a ^_occupation_^. ';
$variables = array('name' => 'adam');
$re = preg_replace_callback('/\^_(?<var>.+?)_\^/', function($params) use ($variables) {
if (isset($variables[$params['var']])) {
return $variables[$params['var']];
} else {
return '';
}
},
$input);
print $re;这使用了从php 5.3.0开始的匿名函数语法,如果你想在早期版本中使用它,你可能需要为它声明一个单独的回调。
https://stackoverflow.com/questions/12244777
复制相似问题