27

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

<!-- 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>

导航栏.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>';

    ?>

感谢您的帮助!

4

7 回答 7

27

You can use php code in files with extension .php and only there (iff other is not defined in your server settings).

Just rename your file *.html to *.php


If you want to allow php code processing in files of different format, you have two options to do that:

1) Modifying httpd.conf to allow this for all projects on your server, by adding:

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

2) Creating .htaccess file in your separate project top directory with:

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

For second option you need to allow use of .htaccess files in your httpd.conf, by adding the following settings:

AllowOverride All
AccessFileName .htaccess

*that is correct for Apache HTTP Server

于 2012-08-09T16:07:22.153 回答
9

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

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

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

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

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

<?php include ('includes/headings.php'); ?>

于 2012-08-09T16:09:55.700 回答
4

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

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

<?php error_reporting(E_ALL);?>

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

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

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

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

您可以在此处发布错误说明,如果您有任何错误说明,但您无法弄清楚它的含义..

于 2012-08-09T16:29:16.487 回答
2

第一:别人怎么说。忘记 echo 语句,只需将 navbar.php 编写为常规 HTML 文件。

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

include __DIR__.'/navbar.php'; // PHP 5.3 and later
include dirname(__FILE__).'/navbar.php'; // PHP 5.2
于 2012-08-09T16:16:56.350 回答
1

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

于 2015-01-22T14:44:43.653 回答
1

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

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

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

首先,创建一个空白文本文件并将其命名为“.htaccess”。您可能会问自己为什么文件名以点开头。在类 Unix 系统上,这意味着它是一个点文件,是一个隐藏文件。(注意:如果您的操作系统不允许以点开头的文件名,只需暂时将文件命名为“xyz.htaccess”。在稍后的步骤中将其上传到您的网络服务器后,您可以在线将文件重命名为“. htaccess") 接下来,使用简单的文本编辑器打开文件,例如 MS Windows 中的“编辑器”。将以下行粘贴到文件中: AddType application/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 文件中的替代行,如上所示。如果仍然无法正常工作,请联系您的托管服务提供商。

于 2014-02-26T09:11:32.170 回答
0

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

于 2017-09-29T04:32:12.837 回答