在我的网站上,我有一些名为新闻/博客/产品等的文件夹......所有这些部分实际上都是相同的设置,除了头部的小内部样式更改,而不是复制和粘贴相同文件n次我宁愿拥有一个模板,我开始这样做:
每个页面都有2个包含:
<?php
include "../article_template/part1.html";
?>
// Each pages internal styling goes here
<?php
include "../article_template/part2.html";
?>
第1.html部分:
<?php
require_once "directory/functions.php";
?><!DOCTYPE html>
<html><head>
<link rel="stylesheet" type="text/css" href="http://example.org/folder/style1.css">
<link rel="stylesheet" type="text/css" href="http://example.org/folder/style2.css">
<style type="text/css">
第2.html部分:
</style>
<title> <?php get_title(explode('/', $_GET['$url'])); ?></title>
</head><body>
<?php
include "../topborder.html";
include "../banner.php";
include "../navbar.html";
?>
<div id="container">
<div id = "article_container">
<?php
$uri = explode('/', $_GET['$url']);
get_article($uri[0]);
?>
</div>
<?php include "../folder/sidepanel.html"; ?>
</div></body></html>
在第1部分和第2部分之间,我可以插入页面的内部样式。虽然这个工作正常,但看起来有点hacky - 我会遇到很多性能或其他任何问题吗? - 虽然这个设置对我来说更容易,因为我只需要更改1个文件来影响所有区域,我有点担心性能。有更好的方法吗?
答案 0 :(得分:1)
这与WordPress页面使用的布局技术相同。你会没事的。如果您需要证明,请下载免费的WordPress主题并查看它。
答案 1 :(得分:1)
重复自己需要花费更多的时间,如果你不得不回去并在多个地方做出同样的改变,那么可能会有更多的时间。 DRY(不要重复自己)减少重复和随之而来的维护问题。
在您的示例中,您包含了不同的HTML文件,我们可以制作包含任何HTML模板的功能。好处:更短的代码,您不需要记住每个文件的路径,如果您需要更改HTML文件,您只需执行一次。
<?php
// Add this to functions
function get_template($template = '') {
$path = '/absolute/path'; // Absolute path to your project
$templates = array(
'topBorder' => '/views/topborder.html',
'banner' => '/views/banner.html',
'navBar' => '/views/navBar.html',
'sidePanel' => '/views/sidepanel.html'
);
if(isset($templates[$template])) {
$templateFile = $path . $templates[$template];
if(file_exists($templateFile))
include($templateFile);
}
}
// Instead of including some static HTML
// We only call the function with the corresponding template
get_template('navBorder');
get_template('banner');
get_template('navBar');
答案 2 :(得分:0)
我有点担心表现。有没有更好的方法 这样做?
为什么呢? HTML之前的PHP标签意味着100%的任何东西。 PHP将作为PHP&amp;第二个HTML <!DOCTYPE html>
出现,它直接通过Web服务器以HTML格式发送。