【问题标题】:Multiple <HTML> tags in a single page单个页面中的多个 <HTML> 标签
【发布时间】:2014-07-11 21:50:43
【问题描述】:

我对 PHP 还很陌生。我一直在开发一个需要公共标头(header.php)的 PHP 网站代码。我在 content.php 中包含了常见的 header.php 页面。现在我在 HTML 视图源中看到了 2 个 2 和 2 个标签。

代码是这样的 -

<?php
      include "header.php";

      //some php code.
?>
<html>
<head> <script src="test.js"> </script></head>
   <body>
        <h1> Test Page </h1>
   </body>
</html>

在页面源代码中,我的代码如下所示,

<html>
<head> <script src="header.js"> </script></head>
   <body>
        <h1> Menu Page </h1>
   </body>
</html>
<html>
<head> <script src="test.js"> </script></head>
   <body>
        <h1> Test Page </h1>
   </body>
</html>

如果此代码正常,或者多个 html 或 head 标签不利于 SEO 和/或性能,请提出建议。另请提出解决方法。

【问题讨论】:

  • 不行。每个文档只有一个&lt;html&gt; 标签。
  • 您的 HTML 结构已损坏。浏览器可能是宽容的,但结果将是不可预测的。
  • 解决方法是让您确定 PHP 代码中的哪些内容破坏了您的 html 并修复它。
  • 更改 header.php 文件,这样它就不会输出任何标签,除了 head 标签和它的内容。
  • @jasper,可以做的是使用 header.php 作为它听起来的样子,一个标题。仅将 &lt;HTML&gt; 标签和 JS/CSS 引用之类的标头内容放在那里。

标签: javascript php


【解决方案1】:

不,每页只能有一个&lt;HTML&gt;

您正在寻找的是“布局模式”。

<!DOCTYPE HTML>
<HTML>

    <HEAD>
        <!-- your link to stylesheet, jquery etc -->
    </HEAD>

    <BODY>
        <!-- here include your header -->

        <!-- and your content -->
    </BODY>

</HTML>

标题和内容都没有任何 &lt;HTML&gt; 或其他部分 - 只是 &lt;DIV&gt; 等。

如果您正在为基本的 HTML 格式而苦恼,这里有一些 basic html templates 可供您使用。


对于任何更大的应用程序,使用框架(例如Laravel)和一些模板引擎是有意义的。

然而,对于这个简单的例子,你可以有这样的东西:

[file index.php]
- resolve what content to show based on $_GET
- include layout, tell it what title and content to show

[layout]
as shown above, add into <head> a <title> tag
in body, include the content files

[additional files for content, header etc]
...

【讨论】:

  • +1 这意味着,OP 需要一个额外的 include.php,其中将收集脚本、样式和一般 HEAD 选项。
  • @ArtjomB。这真的取决于.. 如果这些东西很常见,它们可以写在布局中。如果你的意思是即。 &lt;title&gt;,好吧,那么有一个包含布局的“主文件”并告诉它要显示的标题和内容是有意义的。
  • 在哪里放置 javascripts 和 css ? Header 或 Content.php 页面?
  • @jasper 查看我链接的示例,您可以清楚地看到所有内容。样式表位于头部,脚本通常也是如此(但也可以在正文中)。
  • 非常感谢 MightyPork
【解决方案2】:

根据定义,一个 Html 文档恰好包含 1 个 HTML 标记,其中包含一个 head 和 body 标记。所以你的代码不是有效的 HTML。

【讨论】:

    【解决方案3】:

    没有。你只能拥有一套

    <html> </html>
    

    标签

    【讨论】:

      【解决方案4】:

      我想这就是你要找的:

      您的header.php 应包含以下html

      <html>
         <head>
           <title></title>
           ....
         </head>
         <body>
      

      现在您的body page 应该只包含divs 和只包含在&lt;body&gt;&lt;/body&gt; 中的内容。

      然后你有 footer.php 像这样结束 html:

         </body>
      </html>
      

      所以在您的主体文件中,您将拥有以下内容:

      <?php
         include "header.php";
      
         //some php code.
      ?>
      
      <h1> Test Page </h1>
      
      <?php
         include "footer.php";
      ?>
      

      【讨论】:

      • 非常感谢GGio
      【解决方案5】:

      您应该只使用一个&lt;html&gt;&lt;head&gt;&lt;body&gt;&lt;h1&gt; 标记来编写有效的html 代码。

      如果您尝试使用 php 构建类似引擎的模板,您可以这样构建它:

      header.php

      <!DOCTYPE HTML>
      <html>
      <head>
          <script src="my.js"></script>
      </head>
      <body>
      

      index.php

      <?php
           include_once("header.php");
      ?>
      <h1><?php echo $page_title; ?></h1>
      
      <div class="main">
          <p>This is my Content</p>
      </div>
      
      <?php
          include_once("footer.php");
      ?>
      

      页脚.php

      <script src="additional.js"></script>
      </body>
      </html>
      

      【讨论】:

      • 非常感谢拉斐尔
      【解决方案6】:

      你需要删除header.php中的html和body标签等。这将解决您的问题

      【讨论】:

      • 并移动标题包含。
      猜你喜欢
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 2011-06-27
      相关资源
      最近更新 更多