当前标准在html和php中复制静态内容

时间:2013-06-24 14:27:35

标签: php html static

我了解<?php include 'filename.php';?>可用于跨多个页面复制静态内容。

之前我曾为之前的一些网站做过这个,但是我想创建一个更专业的网站,而且我不确定点缀很多<?php include这是一个很好的方法,感觉就像胶。

这是专业人士的做法吗?我问这个是因为我的所有页面最终都有include的标题,页眉,页脚和导航。

如果没有更好或更清洁的方式我会继续,但如果有更好的方式人们管理这个我想知道。

干杯

3 个答案:

答案 0 :(得分:1)

许多专业人士使用模板库。这是一种更加面向对象的方式来做你正在谈论的事情。我们的想法是,您可以将内容分解为更小的可重用部分以及一些添加动态内容的方法,然后构建网页非常简单。

考虑制作一个类似下面的php类,如果你想自己动手:

<?php

class Link
{
public $relation;
public $type;
public $href;

public function __construct($relation, $type, $href)
{
    $this->relation = $relation;
    $this->type = $type;
    $this->href = $href;
}

public function __toString()
{
    return "<link rel='$this->relation' type='$this->type' href='$this->href'>";
}
}

class Anchor
{
public $href;
public $content;

public function __construct($href, $content)
{
    $this->href = $href;
    $this->content = $content;
}

public function __toString()
{
    return "<a href='$this->href'>$this->content</a>";
}
}

class Script
{
public $source;
public $type;

public function __construct($source, $type)
{
    $this->source = $source;
    $this->type = $type;
}

public function __toString()
{
    return "<script src='$this->source' type='$this->type'></script>";
}
}

class Option
{
public $value;
public $text;

public function __construct($value, $text)
{
    $this->value = $value;
    $this->text = $text;
}

public function __toString()
{
    return "<option value='$this->value'>$this->text</option>";
}
}

class Select
{
public $options;
public $name;

public function __construct($name, $options)
{
    $this->name = $name;
    $this->options = $options;
}   

public function __toString()
{
    $result = "<select id='$this->name'>";
    foreach($this->options as $option)
        $result.=$option;
    $result.= "</select>";
    return $result;
}
}

class Div
{
public $id;
public $class;
public $content;

public function __construct($id, $class, $content)
{
    $this->id = $id;
    $this->class = $class;
    $this->content = $content;
}

public function __toString()
{
    return "<div id='$this->id' class='$this->class'>$this->content</div>";
}
}


class HeaderItem
{
public $title;
public $links;

public function __construct($title, $links)
{
    $this->title = $title;
    $this->links = $links;  
}

public function __toString()
{
    $result = "<head>"."<title>$this->title</title>";
    foreach($this->links as $link)
        $result.= $link;
    $result.= "</head>";
    return $result;
}
}

class Document
{
public $header;
public $body;

public function __construct($header, $body)
{
    $this->header = $header;
    $this->body = $body;
}

public function __toString()
{
    return "<!DOCTYPE HTML>$this->header<html><body>$this->body</body></html>";
}

}
?>

答案 1 :(得分:0)

看看MVC编程。

通常包括如何在文档中包含页眉或页脚等。但是在大型项目中,您通常会创建一个包含标题和任何动态信息的类。然后它将返回解析的结果。

http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller

答案 2 :(得分:0)

正如@AdamTester建议的那样,MVC(模型,视图,控制器)绝对是最佳选择。您可以使用模型处理数据 - 从数据库等加载数据或任何您想要的数据。控制器允许您执行您需要执行的任何操作,并使用视图输出结果内容。您可以使用Smarty

轻松实现您的目标

我当然建议使用Smarty或类似的模板引擎来处理您的视图,因为您也可以按顺序分割不同的视图。