【问题标题】:PHP include not working on very simple codePHP 包括不能处理非常简单的代码
【发布时间】:2012-08-07 14:44:24
【问题描述】:

我试图在我的 index.php 中包含一个非常简单的 header.html,但它似乎不起作用,我无法解决这个问题:

这里是 header.html 代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <link rel="stylesheet" href="css/master.css"/>
</head>
<body>
<header><img src="img/lys.png" class="logo_lys"/></header>
<nav>
    <ul>
        <li><a href="#">Accueil</a></li>
        <li><a href="#">Équipes</a></li>
        <li><a href="#">Tournois</a></li>
        <li><a href="#">Scrims</a></li>
        <li><a href="#">Forum</a></li>
    </ul>
</nav> 
</body>
<html>

这里是 index.php 代码:

   [...content]
    <body>
    <?php //include("header.html"); ?>
    <?php include("header.php"); ?>
     <?php //include($_SERVER['C:/Documents and Settings/sabourma/Bureau/site_2']."header.html");?>
   [...content]
    </body>
    </html>

我试图将 header.html 更改为 header.php,因为我读到如果它在 html 中,计算机将不会处理它。 我还尝试包含我的标题的完整路径,但它没有用。 请注意,我所有的文件现在都是本地的,所以它不可能是服务器问题。 我还读到 php 可能是“禁用”但不知道这意味着什么。

【问题讨论】:

  • 页面回显了什么?你真的在浏览器的源代码中看到了 php 代码吗?那么问题可能真的是你的php服务器没有打开。
  • 当我查看 index.php 的源代码时,我看到: [some html](请注意我刚刚将包含更改为 include_once,因为 Sixeight 告诉我尝试)
  • @Maude,如果这是您在源代码中看到的,那么您没有正确安装 PHP...
  • 谢谢!对不起,我缺乏知识!

标签: php html include


【解决方案1】:

请注意,我所有的文件现在都是本地的,所以这不是服务器问题

是的,可以。

PHP 是(通常用作)服务器端编程语言。

如果没有服务器(必须安装和配置 PHP 解释器),它就无法工作。

(确实如此,但您必须通过 PHP 解释器运行文件,而不仅仅是在浏览器中加载它们)。

【讨论】:

  • 哦,哇,我真笨。我认为它与 html/css 相同。谢谢!
【解决方案2】:

从您问题下方的 cmets 看来,可能存在两个问题:

  • 要么你没有安装php
  • 或者您已安装但未运行

如果你还需要php软件,可以找here。安装完所有内容后,其中有一个名为“htdocs”的文件夹,您可以在其中放置您的 php 文件。在浏览器中,您可以通过“http://localhost/”访问此文件夹。因此,例如,如果您在 htdocs 中有一个名为“greatsite”的文件夹,您可以在浏览器中通过 http://localhost/greatsite/

访问它

如果你只是没有激活 php,打开 Xampp 启动器并启用 php 和 apache。

顺便说一句:您可以包含像 php 文件这样的 html 文件,两者都应该可以工作,这不是问题。

【讨论】:

  • 非常感谢!我以前做过PHP,但是很久以前,服务器已经完全设置好了,所以我不必处理这种问题。
【解决方案3】:

标题为html 的文件称为header.html,但包含header.php。我看到上面被注释掉的那一行。

试试:

<?=include_once('header.php');?>

代替那些行。

【讨论】:

  • 之前它被称为 header.html,但后来我将其切换为 .php,这就是为什么我尝试包含 .php 并将包含 .html 放在注释中的原因。我尝试了 include_once 但它什么也没做
  • 如果你运行 &lt;?=phpinfo();?&gt; 会返回什么。
【解决方案4】:

您的 php.ini 文件中的某些属性将控制功能。但是,使用默认安装应该允许文件包含。

$_SERVER['C:/Documents and Settings/sabourma/Bureau/site_2']."header.html 不是引用文件绝对路径的正确方法。

你会想用这样的东西来代替:

include($_SERVER['DOCUMENT_ROOT'] . "/path/to/header.php"); // DOCUMENT_ROOT represents the root directory, echo this for more info

还请记住,.html 在包含时应该可以工作。它也可能不包括在内,因为您列出了 header.php 而不是 header.html

祝你好运!

【讨论】:

  • 原来是我的 php 没有安装在我的电脑上(哈哈!)但是非常感谢你给我关于文档根目录的建议,我真的不知道如何使用它!
【解决方案5】:

请不要养成使用短标签&lt;?的习惯,因为它们并不总是被支持。

&lt;?=include_once('header.php');?&gt;

可以替换为

&lt;?PHP include_once('header.php'); ?&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    相关资源
    最近更新 更多