【问题标题】:PHP Include for HTML?用于 HTML 的 PHP 包含?
【发布时间】:2023-04-03 20:45:01
【问题描述】:

我有一个导航栏、一个图像和一个标题,我将包含在我网站的每个页面中,因此我想使用 php include 在多个页面中引用此代码。但是,我认为我可能有语法错误或什么,因为当我加载它时它没有呈现任何东西。下面是一些sn-ps的代码:

<!-- sample page --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html>  
<head>  
<?php include ('headings.php'); ?>
</head>
<body>
<?php include ('navbar.php'); ?>
<?php include ('image.php'); ?> 
</body>
</html>

navbar.php

    <?php 

    echo '<ul id="nav">
        <li>
            <a href="Home.html">Home</a>
        </li>
        <li>
            <a>About Me</a>
            <ul>
                <li>
                    <a href="Career.html">Career</a>
                </li>
                <li>
                    <a href="Coding.html">Coding</a>
                </li>
                <li>
                    <a href="Personal.html">Personal</a>
                </li>
            </ul>
        </li>
        <li>
            <a href="Travels.html">Travel</a>
        </li>
        <li>
            <a href="Contact.html">Contact</a>
        </li>
    </ul>';

    ?>

感谢您的帮助!

【问题讨论】:

  • 没有理由在 PHP 标记中使用它并使用 echo。即使它只是原始 HTML,您也可以包含它。 编辑:也就是说,您的代码看起来不错。您是否尝试过查看源代码,可以将其发布在 OP 中吗? 编辑:可能是因为您的服务器上没有安装 PHP,因此您的浏览器只是将 PHP 标记呈现为常规 HTML 标记(无)。
  • +1 就像你对头部和身体标签所做的那样
  • 您可能需要考虑使用模板引擎。查看 Smarty、Twig 或 Dwoo 作为示例。还有很多。
  • 加载的时候可以查看页面的源码吗?这可能会让您对实际发生的事情有所了解。
  • 是的,它必须是 .php。这实际上包含在以下 3 个答案中的 2 个中。

标签: php html include


【解决方案1】:

您可以在扩展名为 .php 的文件中使用 php 代码,并且只能在其中使用(如果您的服务器设置中未定义其他代码)。

只需将您的文件 *.html 重命名为 *.php


如果您想在不同格式的文件中允许php 代码处理,您有两种选择:

1) 修改 httpd.conf 以允许您服务器上的所有项目使用此功能,方法是添加:

AddHandler application/x-httpd-php .htm .html

2) 在您单独的项目顶级目录中创建.htaccess 文件:

<Files />
    AddType application/x-httpd-php .html
</Files>

对于第二个选项,您需要通过添加以下设置来允许在 httpd.conf 中使用 .htaccess 文件:

AllowOverride All
AccessFileName .htaccess

*这对 Apache HTTP 服务器是正确的

【讨论】:

  • 错误。只要将服务器设置为将不同扩展名作为 PHP 文件处理,您就可以将 PHP 代码包含在具有 ANY 扩展名的文件中(即.js.css.html 等。 )。
  • 您也可以在具有其他扩展名的文件中使用 PHP。
  • 好的,如果您在服务器设置中设置了该选项。
  • 大多数共享服务器仅设置为处理 .php 文件中的 php。是的,您可以以其他方式进行设置,但是来吧 - 在这个级别提出问题的人可能还没有弄清楚如何做到这一点。
  • @EdwardRuchevits 使用 include/require 文件名无关紧要。它始终作为 PHP 执行。
【解决方案2】:

您不需要在 php 文件中回显信息。 php include 将自动在该文件中包含任何 HTML。

确保您实际使用的是扩展名为 .php 的索引文件,.html 不适用于 php 包含。 (除非您告诉您的服务器以其他方式处理 .html 文件)

确保您的路径设置正确。根据您的描述,您设置 header.php/navbar.php/image.php 文件的方式应该在您的根目录中。 所以你的根目录应该是这样的:

index.php
navbar.php
image.php
header.php

否则,如果这些 PHP 文件位于名为 /includes/ 的文件夹中,则应如下所示:

&lt;?php include ('includes/headings.php'); ?&gt;

【讨论】:

    【解决方案3】:

    尝试获取一些调试信息,例如文件路径错误。

    试试这两件事:- 将此行添加到示例页面的顶部:

    <?php error_reporting(E_ALL);?>
    

    这将打印页面中的所有错误/警告/通知,因此如果有任何问题,您会收到描述它的文本消息,而不是空白页

    此外,您可以将 include() 更改为 require()

    <?php require ('headings.php'); ?>
    <?php require ('navbar.php'); ?>
    <?php require ('image.php'); ?>
    

    这将引发致命错误 PHP 无法加载所需的页面,并且应该可以帮助您更好地跟踪问题所在..

    你可以在这里发布错误描述,如果你得到任何,你无法弄清楚它的含义..

    【讨论】:

    • 谢谢,但我们已经弄清楚了。不过,我相信这对未来会有帮助!
    【解决方案4】:

    首先:其他人怎么说。忘记 echo 语句,只需将 navbar.php 编写为常规 HTML 文件即可。

    第二:你的包含路径可能搞砸了。要确保包含与当前文件位于同一目录中的文件,请使用__DIR__

    include __DIR__.'/navbar.php'; // PHP 5.3 and later
    include dirname(__FILE__).'/navbar.php'; // PHP 5.2
    

    【讨论】:

      【解决方案5】:

      这是在 html 文件中包含 php 代码的分步过程(已测试)

      如果 PHP 正在工作,那么只需一步即可在带有 *.html 或 *.htm 扩展名的文件中使用 PHP 脚本。神奇的词是“.htaccess”。请参阅 .htaccess 的 Wikipedia 定义以了解更多信息。根据 Wikipedia,它是“一个目录级配置文件,允许对 Web 服务器配置进行分散管理。”

      您可能可以将这样的 .htaccess 配置文件用于您的目的。在我们的例子中,您希望网络服务器解析 HTML 文件,如 PHP 文件。

      首先,创建一个空白文本文件并将其命名为“.htaccess”。您可能会问自己为什么文件名以点开头。在类 Unix 系统上,这意味着它是一个点文件,是一个隐藏文件。 (注意:如果您的操作系统不允许以点开头的文件名,只需暂时将文件命名为“xyz.htaccess”。在稍后的步骤中将其上传到网络服务器后,您可以在线将文件重命名为“.htaccess”。 htaccess") 接下来,使用简单的文本编辑器(如 MS Windows 中的“编辑器”)打开文件。将以下行粘贴到文件中: AddType 应用程序/x-httpd-php .html .htm 如果这不起作用,请从文件中删除上面的行并将此替代行粘贴到其中,对于 PHP5: AddType application/x-httpd-php5 .html .htm 现在将 .htaccess 文件上传到您的网络服务器的根目录。确保文件名是“.htaccess”。您的网络服务器现在应该解析 *.htm 和 *.html 文件,如 PHP 文件。

      您可以通过创建如下所示的 HTML 文件来尝试它是否有效。将其命名为“php-in-html-test.htm”,将以下代码粘贴到其中并上传到您的网络服务器的根目录:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
           <HTML>
       <HEAD>
       <TITLE>Use PHP in HTML files</TITLE>
       </HEAD>
      
         <BODY>
          <h1>
          <?php echo "It works!"; ?>
          </h1>
        </BODY>
       </HTML>
      

      尝试在浏览器中输入以下内容打开文件:http://www.your-domain.com/php-in-html-test.htm(再次,请将 your-domain.com 替换为您自己的域...) 如果您的浏览器显示“它可以工作!”一切正常,从现在开始,您可以在 .*html 和 *.htm 文件中使用 PHP。但是,如果没有,请尝试使用 .htaccess 文件中的替代行,如上所示。如果仍然无法正常工作,请联系您的托管服务提供商。

      【讨论】:

        【解决方案6】:

        我想出了一个简单的 PHP 包含东西的解决方案。只需将所有 .html 文件重命名为 .php 即可。

        【讨论】:

          【解决方案7】:

          我也有类似的问题。似乎 PHP 不喜欢包含文件中的 php 代码。在您的情况下,解决方案非常简单。从 navbar.php 中删除 php 代码,只需在其中保留纯 HTML 即可。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-09-17
            • 1970-01-01
            • 2011-04-16
            • 1970-01-01
            • 1970-01-01
            • 2012-05-08
            • 2011-01-14
            • 1970-01-01
            相关资源
            最近更新 更多