【问题标题】:HTML / PHP: Which parts of an HTML head can be saved in a separate fileHTML / PHP:HTML头的哪些部分可以保存在单独的文件中
【发布时间】:2015-08-29 11:29:24
【问题描述】:

我是 HTML 新手,希望有人能帮助我。

我正在尝试建立一个网站,其中每个页面的代码都保存为单独的 php 文件。 由于所有这些页面都使用相同的 文档头 并包含 我想从页面中删除尽可能多的内容并将其保存在单独的包含文件中 (@987654321 @) 然后我可以使用 PHP 将其包含在内。

我当前的头部如下所示,因为这在所有页面上都是相同的,所以我目前将所有这些都保存在单独的 header.php 文件中,然后在单个页面上使用<?php include "header.php"; ?>

有人能告诉我哪些部分应该保留在单个页面上以进行正确设置,以及是否应该在此处更改或添加任何内容?

注意: jQuery 和 JS 分别包含在页脚中。

我的 PHP(头文件):

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta name="author" content="John Doe" />
        <meta name="description" content="Created: 2015-06" />

        <base href="http://www.MyURL.com" target="_self" />

        <!-- CSS -->        
        <link rel="stylesheet" type="text/css" href="includes/styles.css" />
        <!-- CSS - Font Awesome -->
        <link rel="stylesheet" type="text/css" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" />

        <title>My Page</title>
    </head>

    <body>
        <div class="wrapper">
        <!-- ... -->

【问题讨论】:

  • 你做对了。如果每个页面上的页眉和页脚都重复,那么将它们放在单独的文件中然后将它们包含在其中是有意义的。优点是如果您需要对这些部分之一进行更改,那么您可以在一个地方对其进行编辑。独特的功能通常在它自己的文件中。例如,联系表格将在联系页面上,而不是在将包含在每个面向公众的页面中的标题中。
  • @Maxxi:谢谢 - 我只是想知道是否有任何 HTML 标签应该保留在页面上,否则页面本身看起来好像缺少开始或结束标签(例如,当我还保存 在单独的文件中。我知道 PHP 添加了这个,所以这只是以正确的方式进行。
  • 为什么不试试一些模板引擎呢? IE。聪明?
  • @Philipp:谢谢你 - 因为我刚开始编程,我觉得如果我自己做而不是使用模板或生成器,我会更好地学习它。
  • 我编写我的网络应用程序的方式与您显示的相同 - 在标题中打开正文和内容 div,然后在尾部关闭它们。那么每个页面的“正文”就不用担心这些了,可以只包含重要的内容。对我来说似乎工作得很好,但我很想看看是否有人建议另一种方法。

标签: php html include html-head


【解决方案1】:

您的 Top 头文件 (top_head.php):

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />

        <?php if(isset($page_author)){ ?>
            <meta name="author" content="<?php echo $page_author; ?>" />
        <?php } ?>

        <?php if(isset($page_description)){ ?>
            <meta name="description" content="Created: 2015-06" />
        <?php } ?>

        <!-- CSS -->        
        <link rel="stylesheet" type="text/css" href="includes/styles.css" />
        <!-- CSS - Font Awesome -->
        <link rel="stylesheet" type="text/css" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" />

        <title><?php echo $page_title; ?></title>

您当前的头文件:

<?php
      $page_title = 'Hello';
      $page_description = 'This is a beautiful description';
?>
<?php include("top_head.php"); ?>
</head>

    <body>
        <div class="wrapper">
        <!-- ... -->

【讨论】:

  • 这里只添加一个问题:是否有特定原因为什么“”也没有保存在单独的头文件中?
  • 我认为这样你可以添加到特定文件中的head 部分,否则你已经关闭了它。但是您可以通过在 head 部分中包含更多变量来轻松实现此目的。
  • 更新:只是为了添加(在应用了这里的所有建议之后)我切换到 require_once() 而不是使用 include() 在此处包含单独的文件。
  • 只有在您有机会多次尝试包含该文件时才真正需要这样做,我建议require_once() 在这种情况下过于矫枉过正,包含很好,但事实并非如此有很大的不同。
【解决方案2】:

由于您是在 header.php 中开始您的标签,您可以在自己的页面本身上关闭标签(我的意思是其他页面,即:联系、关于我们、产品等...)。

【讨论】:

    【解决方案3】:

    您在问题中提到的代码部分可以称为header.php,并且可以进一步包含在需要它的每个页面上。

    除此之外

    1. 标题 - header.php
    2. 主要内容 - main-content.php - 这将特定于您网站上的每个页面
    3. 页脚 - footer.php - 这也可以通用 - 并进一步包含在每个页面中。
    4. 除此之外,您还可以拥有更多的 php 文件,这些文件可能具有导航或任何类型的常见内容块。

    示例页面可以是:

    <?php
    include 'header.php'
    /*either add here the content or include further php files*/
    include 'about-us.php'
    include 'footer.php'
    ?>
    

    【讨论】:

    • 谢谢! - 那么在这种情况下,我会将以上所有内容放在我的标题中还是应该将任何 HTML 留在单个页面上?
    • 正是@keewee279。请确保代码不会在任何常见的 php 文件中重复。您将需要对第 2 点进行大量思考。
    • 再次感谢!我希望我已经整理好页面内容,至少在前几页。
    • @keewee279 - 这很好。如果您可以灵活选择制作网站的工具,那么我建议您尝试使用 CMS - 我建议使用 DRUPAL - www.drupal.org。
    • 谢谢!我已经为自己的导航栏、按钮和表单字段等设置了样式,所以应该已经对其进行了排序,它帮助我习惯了 CSS。 :)
    【解决方案4】:

    你做得对,所有页面之间共享的部分应该放在一个单独的 php 文件中,这极大地改善了你必须维护网站时的生活(想象为每个页面添加样式表或库)一段时间后您的网站...)。

    为了帮助 SEO,您应该指定一个标题,也许还有一些特定于页面的元标记。

    还要仔细考虑您是否在每个页面中都有重复的其他部分,例如左栏或右栏或特定小部件(例如横幅图像或类似的东西)

    【讨论】:

    • 谢谢你 - 是的,我将为页脚和导航栏等创建类似的文件。:)
    【解决方案5】:

    这应该可以让您大致了解...

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta name="author" content="John Doe" />
        <meta name="description" content="Created: 2015-06" />
        <base href="http://www.MyURL.com" target="_self" />
    
        <!--
        Your paths need to relative to the websites root directory or the full
        URL else they may not work depending on where the file is located.
        -->     
        <link rel="stylesheet" type="text/css" href="/includes/styles.css" />
        <link rel="stylesheet" type="text/css" href="http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" />
    
        <!-- 
        This line just echos the title if one has been set or a default string
        if the title hasn't been set. You will need to ensure every page that
        includes this file sets the title before including this file. You may
        also want to take this approach with other values.
        -->
        <title><?php echo isset($title) ? $title : 'Default Title'; ?></title>
    </head>
    <body>
        <div class="wrapper">
    

    【讨论】:

    • 非常感谢。这看起来不错。所以关于我的问题,我应该把所有这些放在单独的头文件中吗?
    • 是的,将其命名为 header.php 并将其包含在需要的文件中。确保在某处关闭“包装器”div,在页脚包含将是一个好主意:)
    • 没问题,我编码标题的方式(使用三元运算符)是最好的方法,我发现好像你忘记设置它你仍然有一个默认的标题集。您标记为正确的答案也有一些有用的内容:)
    猜你喜欢
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    相关资源
    最近更新 更多