我已经仔细研究了之前的所有主题,而且我不太了解PHP使用它们来回答我的问题,如果这很简单,请提前抱歉!
{
$content = preg_replace('/\$([\w]+)/e', '$0', $this->getTemplateStyle());
$custom_css = $this->getCustomCSS();
return $content.$custom_css;
}
我需要将preg_replace
替换为preg_replace_callback
。我知道它不是一个简单的开关,我需要在代码中添加更多内容,但我不知道要添加什么。在此先感谢您的帮助。
答案 0 :(得分:-1)
[解决] 您似乎试图将当前作用域中的变量注入到字符串中。我不理会为什么这是一个坏主意,并假设没有涉及用户输入。首先得到当前范围:
$scope = get_defined_vars();
接下来使用回调:
preg_replace_callback('/\$(\w+)/',function($m) use ($scope) {if( isset($scope[$m[1]])) return $scope[$m[1]]; else return $m[0];}, $this->getTemplateStyle());
完成工作。 - @Niet the Dark Absol