模板类无法工作

时间:2014-10-21 12:25:11

标签: php class templates str-replace

我试图修复我的模板类,但它不起作用,

什么不起作用:[@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;
}

希望有人能提前帮助我。

1 个答案:

答案 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"