我有这段代码:
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;
}
}
如果我在模板中输入一些简单的文字,那么页面会变成白色而内部没有任何内容。
有什么问题?
答案 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)
我发现不带引号的常量显示警告(取决于php配置,WAMP会这样做)
在编辑过的代码中你遇到错误问题,只引用两个常量,它应该正常工作,测试如下:
$ template = new template(“index”,“”);
$ template-&gt; SetValue(“notice”,“notice:”);
$模板 - &GT;光洁度();
文件夹结构:必须提供styles / main。这些文件必须在main中找到:index.html,footer.html,header.html必须是私有的
如果一切正常,请尝试删除任何不必要的评论或答案。 谢谢!