我试图修复我的模板类,但它不起作用,
什么不起作用:[@title]没有被替换。
代码:
protected $file;
protected $values=array();
public function __construct($file){
$this->file = $file;
}
public function set($key, $value){
$this->values[$key] = $value;
}
public function output() {
if (!file_exists($this->file)) {
return "Pagina kan niet gevonden worden.";
}
$output = file_get_contents($this->file);
foreach ($this->values as $key => $value) {
$tagToReplace = "[@$key]";
$output = str_replace($tagToReplace, $value, $output);
}
return $output;
}
希望有人能提前帮助我。
答案 0 :(得分:0)
$是php变量的起始字符。 简单逃脱吧。
$tagToReplace = "[@\$key]";
$output = str_replace($tagToReplace, $value, $output);
//编辑
我测试了代码。在我的测试环境中,一切正常。
$test = new Tpl(__DIR__."/test.txt");
$test->set("test", "huhu123");
$test->set("asdf", "xcv");
var_dump($test->output());
TESTFILE:
kjasdfgkashf [@test]
输出:
string(20) "kjasdfgkashf huhu123"