带有while循环的PHP模板系统

时间:2016-07-07 11:38:03

标签: php

我试图建立一个简单的模板系统,因为我不想使用Smarty或类似的东西。

我目前的问题是我无法通过while循环打印1个标签。它只打印第一个结果。

public $TplKey = array();

public function GetContent($file, $data) {
    $template = file_get_contents($file);

    foreach($data as $key => $value) {
        $template = str_replace('{'.$key.'}', $value, $template);
    }

    return $template;
}

public function View($file) {
    return $this->GetContent($file, $this->TplKey);
}

public function TplKeyAdd($key, $value) {
    return $this->TplKey += array($key => $value);
}

public function testing() {
    global $DBHandle;

    $q = $DBHandle->mysqli->query("SELECT * FROM site_users");
    while($qf = $q->fetch_array()) {
        $r = $this->TplKeyAdd("var", $qf["user_name"]);
    }

    return $r;
}

然后,稍后在我的.TPL文件中,我呼叫{var}。但它只显示第一个数据库行(如上所述)。我希望它显示它可以找到的每一行。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您的问题在于如何存储npm install --prefix <path/to/prefix_folder> -g =&gt; key方法中value对。

我相信你的追随者:

TplKeyAdd

还有这个:

public function TplKeyAdd($key, $value) {
    return $this->TplKey[] = array($key => $value);
}

每次添加的密钥称为“var”,因此数据库中的每个值都没有自己的密钥。

编辑:同样如ianinn所指出的那样,你不应该在你看的时候回来,因为它只会得到第一次迭代。