2
<head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="css/style.css"/>
    <link rel="stylesheet" type="text/css" href="css/homepage.css"/>
    <link rel="stylesheet" type="text/css" href="css/header.css"/>
    <link rel="stylesheet" type="text/css" href="css/footer.css"/>
    <link rel="stylesheet" type="text/css" href="css/navmenu.css"/>
    <!-- more css here -->
    <script type="text/javascript" src="js/jQuery.js"></script>
    <script type="text/javascript" src="js/navmenu.js"></script>
    <!-- more js here -->
</head>

我在所有页面的标签中都有所有外部css和javascripts <head></head>,所有这些在所有页面中都很重要。将所有这些放在一个单独的文件中并使用php包含它们是否合适?因此,如果我想对这些外部进行一些更改,这对我来说很容易,因为它会影响我的所有页面..我只是想知道这是否是一个好习惯..提前谢谢

4

5 回答 5

2

是的。但为什么要停在那里?理想情况下,您应该将所有重复标记放在一个文件中。

在 PHP 中有许多共享通用标记的方法,但最简单的方法是拥有一个全局“Top.php”和“Bottom.php”文件,如下所示:

在 Top.php 中:

 <html>
 <head>
      <title><?php echo $pagetitle; ?></title>
      <!-- your <meta /> elements go here -->
 </head>
 <body>
      <!-- common page elements go here -->

在底部.php 中:

 </body>
 </html> <!-- This ensures all of the common markup is closed -->

然后对于每个页面,执行以下操作:

 <?php $pageTitle = "This page's title";
 require("Top.php"); ?>
 <!-- put your per-page markup and PHP code here -->
 <?php require("Bottom.php"); ?>

简单的。

现在我如何使用require()而不是include(). require 函数更严格,基本保证包含的文件存在。我认为应用程序明显中断比静默失败要好。

于 2012-09-07T14:43:12.827 回答
0

是的,将这样的常见数据提取到单独的文件中是合适的。真正的问题是,既然它在一个单独的文件中,您将如何处理它?

你至少有四个选择。

  • 服务器端(基于主机)包含文件
  • phpinclude语句
  • phprequirerequire_once语句
  • 制作

服务器端包含通常被认为会损害性能,尤其是在低成本(超卖?)共享网络托管服务器上。还有其他问题。

php 中的includerequire语句的区别主要在于它们如何响应丢失的文件。该include语句产生警告;require产生致命错误。

make 实用程序不太常用,但它非常有用。使用 make,您可以将任何文件包含在另一个文件中,当具有静态内容有意义时生成具有静态内容的输出,并且当具有动态内容有意义时生成具有动态内容的输出。

对于您正在谈论的信息,您可以使用 make 来生成样式表和 javascript 引用是静态的文件(因此不会影响性能),并且具有单个源文件的所有可维护性。正确构建的 makefile 保证对样式表/javascript 文件的任何更改都将合并到下一个构建中。

其他文本实用程序可以做一些相同的事情,尤其是当您谈论文件包含时。(例如,m4。)

于 2012-09-07T15:25:02.480 回答
0

将您的片段保存到单独的文件中,然后包含()它们。

是的,这是一个很好的做法,但更好的是使用一些不错的模板系统。从Nette Framework看 Latte 模板系统

于 2012-09-07T14:40:42.907 回答
0

当然这是很好的做法。把它放在一个单独的 PHP 脚本中,即 head.php 然后包含在所有其他页面中

<?php include('head.php'); ?>
于 2012-09-07T14:41:15.760 回答
0

直接回答你的问题。

是的!这是一个很好的做法。

一个好的程序员不会在每一页都重新编码(这是导致 CLASS 发明的必要条件之一)。所以。继续!:)

于 2012-09-07T14:43:58.087 回答