是否可以使用preg_replace()
和substr()
将一个值替换为另一个值,然后删除在替换期间添加的不需要的内容?
即,我有这段代码:
$vars = array(
"{VAR1}",
);
$replace = array(
"black",
);
$styles = preg_replace($vars, $replace, $styles);
我想要做的是,对于样式表中{VAR1}的每个实例,我想用“黑色”替换它,从而创建一个基本的样式表变量解析器。我看到的问题是,当我在print_r()
上使用$replace
时,我得到了正确的值,黑色。然而,当我通过preg_replace提供它时,我得到{black}。我试图用这个来解决这个问题:
foreach($replace as $replaced)
{
$replaced = substr($replace, 1, -1);
}
但是,根本没有更改!是否可以这种方式使用substr()
和preg_replace()
?或者有更好的方法来尝试解析它。
答案 0 :(得分:2)
更好的工具是strtr
您可以像这样定义替换:
$replacements = array(
"{VAR1}" => "black"
);
然后:
$styles = strtr($styles,$replacements);
答案 1 :(得分:1)
您的问题不在$replace
,而在于$vars
您使用大括号作为RegEx分隔符。
试试这个:
$vars = array(
"/{VAR1}/",
...
);