模板机中的文本问题

时间:2011-05-29 18:22:53

标签: php templates text

我有这段代码:

class template
{
    public $template,$prefix,$replace;
    function __construct($template, $prefix)
    {
        $this->prefix = $prefix;
        $this->template = $template;
    }
    public function SetValue($name, $replace)
    {
        $this->replace["#".$name."#"] = $replace;
    }
    public function Tempclude($found) 
    { 
        $file = "styles/main/".$found[1].'.html';

        if(!file_exists($file))     
            exit("the template '" . $found[1] . "' wasn't found."); 
        return file_get_contents($file); 
    }
    public function finish($stream = "normal")
    {
        if($stream == "folder")
            $code = file_get_contents("../styles/main/".$this->template.".html");
        else 
            $code = file_get_contents("styles/main/".$this->template.".html");

        $code = preg_replace_callback("@<pb:include=\"(.*)\">@iuU", array($this, 'Tempclude'), $code);

        if(is_array($this->replace))
            $code = str_replace(array_keys($this->replace), $this->replace, $code);

        $code = str_replace("\r\n", "", $code);
        $code = str_replace("   ", "", $code);
        echo $code;
    }
}

如果我在模板中输入一些简单的文字,那么页面会变成白色而内部没有任何内容。

有什么问题?

2 个答案:

答案 0 :(得分:0)

这不是问题。 试着这样做:

$template = new template("index", ""); 

$template->SetValue("notice", "notice:"); 

$template->finish(); 

和index.html:

<pb:include="header"> 
    hhh 
    #Slider# 
<pb:include="footer"> 

它的工作。 如果您将index.html更改为:

<pb:include="header"> 
    <div id="hh"> 
        hhh 
    </div> 
    #Slider# 

它会返回一个白色的列表,里面有一些东西。

答案 1 :(得分:0)

  1. 我发现不带引号的常量显示警告(取决于php配置,WAMP会这样做)

  2. 在编辑过的代码中你遇到错误问题,只引用两个常量,它应该正常工作,测试如下:

    $ template = new template(“index”,“”);
    $ template-&gt; SetValue(“notice”,“notice:”);
    $模板 - &GT;光洁度();

  3. 文件夹结构:必须提供styles / main。这些文件必须在main中找到:index.html,footer.html,header.html必须是私有的

  4. 如果一切正常,请尝试删除任何不必要的评论或答案。 谢谢!