【问题标题】:PHP Header Include (nav bar) not showing up [closed]PHP Header Include(导航栏)未显示[关闭]
【发布时间】:2015-08-17 05:11:48
【问题描述】:

澄清:由于我从未使用过 PHP,因此不清楚如何格式化 PHP 文件,以便当您将其包含在索引中时,标题(导航栏)会显示出来。没有帖子解释为什么我必须将我的 index.html 更改为 index.php 才能使其工作。再说一次,由于我没有使用过 PHP,我的印象是更改扩展名意味着我必须将我的 HTML 代码转换为 PHP 命令。我试图避免改变我的整个代码。这就是混乱所在。

一旦我弄清楚了这个问题,我就会删除它。再说一次,我确信我不是唯一一个在创建他们的第一个网站时可能会遇到这种情况的人。

解决方案。仅使用带有 PHP 扩展名 (header.php) 的 html 语言保存导航代码。将 index/home 文件从 .html 更改为 .php 扩展名(不必修改任何代码。但接受包含提示)。然后,在 index.php 中包含 header.php。您的页脚也是如此。谢谢大家的帮助。

*原始帖子:通过另一篇帖子,我被告知使用 PHP 在多个页面上使用导航/页脚会更容易。

我创建了一个文件并尝试包含它,但它没有显示。我不确定我做错了什么。

我的导航栏中也有一些 CSS,我需要在 PHP 文件中导入 css 文件吗?还是 index.html 文件会自动附加到包含的 (php) 文件中。

PHP 代码:

<?php
echo '<nav>
    <div>
        <a href="/">
            <div id="logo"><img src="/Images/7serviceLOGOblue2.png" alt="Home"/></div>
            <div id="headtag"><img src="/Images/title.png" alt="Home"/></div>
            <div id="tagline"><img src="/Images/tag_line.png" alt="Home"/></div>
        </a>
    </div>
    <div> 
        <a href="/" class="here">Home</a>
        <a href="/about.html" >About</a>      
        <a href="/services.html" >Services</a>          
        <a href="/pricing.html" >Pricing</a>    
        <a href="/contact.html" >Contact Us</a>
        <input id="srchbar" type="search" placeholder="Search">
    </div>
</nav>';
?>

HTML 代码(包括):

<body>
<?php include '/header.php';?>
    ....other code....
</body>

如果PHP文件有问题,如果我遗漏了什么,请有人解释一下吗?

【问题讨论】:

  • PHP中你需要echo或者只使用HTML,去掉&lt;?php ?&gt;标签。
  • 我删除了 header.php 中的 PHP 标签,但我的导航栏仍然没有显示...
  • 将其更改为&lt;?php include gwtcwd(). '/header.php';?&gt; 会发生什么?你能显示你的目录结构吗? P.S - 您的索引文件需要.php,而不是.html
  • 我正在使用 HTML5,我被告知只需将标题设为 .php 文件,以便可以将其添加到多个页面。这是错的吗?我尝试添加 gwtcwd().,仍然是相同的响应,没有标题...目录结构:根文件夹:-Images 文件夹; -JS文件夹; - 样式表文件夹;头文件.php;索引.html;索引.php;由于上面的答案,只创建了 index.php,仍然没有显示导航栏

标签: php html css navigation php-include


【解决方案1】:

无需在头文件中添加&lt;?php ?&gt;代码,保持原样即可:

  1. 创建一个名为 header.php 的新文件并将此代码添加到其中

    <nav>
    <div>
        <a href="/">
            <div id="logo"><img src="/Images/7serviceLOGOblue2.png" alt="Home"/></div>
            <div id="headtag"><img src="/Images/title.png" alt="Home"/></div>
            <div id="tagline"><img src="/Images/tag_line.png" alt="Home"/></div>
        </a>
    </div>
    <div> 
        <a href="/" class="here">Home</a>
        <a href="/about.html" >About</a>      
        <a href="/services.html" >Services</a>          
        <a href="/pricing.html" >Pricing</a>    
        <a href="/contact.html" >Contact Us</a>
        <input id="srchbar" type="search" placeholder="Search">
    </div>
    

  2. 在任何你想要的地方包含 header.php

【讨论】:

  • 我删除了 header.php 中的 PHP 标签,但我的导航栏仍然没有显示...
  • 你在本地机器上工作吗?什么是母页?像 index.php 或 index.html .. 我更喜欢你应该把它改成 index.php
  • 我在本地机器上工作,我正在使用 Cloud9 来构建和测试我的网站。只有我能找到实际上导入了我的 .css 并工作的东西,所以我认为 php 不是问题。我的母页是 index.html,我尝试将其更改为 .php,但不显示 header.php 的问题仍然相同
  • 使用这个 并将文件存储在上面的一个目录中..如果它不起作用,请使用 require 而不是 include
  • create.shah.gq 访问此页面...这里工作正常
【解决方案2】:

从您的代码中删除 &lt;?php 标记。当您生成 html 输出时。 &lt;?php标签用于php生成输出。

<nav>
    <div>
        <a href="/">
            <div id="logo"><img src="/Images/7serviceLOGOblue2.png" alt="Home"/></div>
            <div id="headtag"><img src="/Images/title.png" alt="Home"/></div>
            <div id="tagline"><img src="/Images/tag_line.png" alt="Home"/></div>
        </a>
    </div>
    <div> 
        <a href="/" class="here">Home</a>
        <a href="/about.html" >About</a>      
        <a href="/services.html" >Services</a>          
        <a href="/pricing.html" >Pricing</a>    
        <a href="/contact.html" >Contact Us</a>
        <input id="srchbar" type="search" placeholder="Search">
    </div>
</nav>

如果你想使用php标签,那么你必须这样写代码:

<?php
echo '
<nav>
        <div>
            <a href="/">
                <div id="logo"><img src="/Images/7serviceLOGOblue2.png" alt="Home"/></div>
                <div id="headtag"><img src="/Images/title.png" alt="Home"/></div>
                <div id="tagline"><img src="/Images/tag_line.png" alt="Home"/></div>
            </a>
        </div>
        <div> 
            <a href="/" class="here">Home</a>
            <a href="/about.html" >About</a>      
            <a href="/services.html" >Services</a>          
            <a href="/pricing.html" >Pricing</a>    
            <a href="/contact.html" >Contact Us</a>
            <input id="srchbar" type="search" placeholder="Search">
        </div>
    </nav>
';
?>

【讨论】:

  • 您可以添加一些为什么 OP 需要删除 &lt;?php 标记。
  • 我删除了 header.php 中的 PHP 标签,但我的导航栏仍然没有显示...
  • header.php 是否存在于根文件夹中?还是其他文件夹? @blackRob4953
  • 根文件夹。和我的 index.html 一样(主页)
  • 好的,您是否将文件包含在.html 页面中?如果将文件包含在 index.html 文件中,则将索引文件名更改为 index.php
【解决方案3】:

您的问题很可能是您所包含的路径。通常您需要从服务器根目录指定,而不仅仅是/header.php

要指定包含路径,您可以像这样指定根目录

include $_SERVER['DOCUMENT_ROOT']."/header.php";

您还可以在php.ini 文件中设置默认包含路径,从而使$_SERVER['DOCUMENT_ROOT'] 成为一个自动进程,可以通过运行此代码来完成,这将改变您的php.ini 文件。

ini_set('include_path', '/usr/lib/pear');

正如其他人所指出的,您不需要将 /header.php 的内容回显出来,因为它是纯 HTML。包含的任何内容都将按原样包含在内,因此将 /header.php 的内容作为纯 HTML 可以更好地练习,因为它更易于阅读。

【讨论】:

  • 我用你给我的代码替换了我的包含语句,仍然没有显示。如果有帮助,我将使用 Cloud9 来构建和测试我的网站。我不确定“document_root”是否应该因此而有所不同。我只有我的网站文件夹,其中包含其他所有内容。如此正常地获得根我只会使用正斜杠。另外,还没有触及任何 php.ini 文件,这是我的第一个网站,这是我第一次使用 php,所以我想这是我的问题
  • 使用include 将在您的error_log 文件中产生警告,指出它无法包含该文件。如果您读出它在那里指定的路径,以及$_SERVER['DOCUMENT_ROOT'] 是什么(只需在 PHP 中回显它),您可能会发现您需要的路径是什么。我几乎可以肯定您的问题是文件的路径。另一个旁注,如果所有内容都在同一个文件夹中,您可以删除斜杠,因为这将包含在相对路径中。此外,使用 include "../header.php"; 将包含父目录,您也可以尝试。
  • 下面的问题解决了这个问题。只需将母文件更改为 index.php,并使用 require 而不是 include
  • 使用requireinclude 并没有真正的区别, require() 函数与 include() 相同,只是它处理错误的方式不同。至于您的解决方案,您使用的是相对路径(稍后可能会出现问题)。如果你在header.phpecho $_SERVER["SCRIPT_FILENAME"];,你会得到完整的文件,如果你从中包含,它是一个绝对路径——这意味着它将被包含在你的整个服务器中,而不仅仅是在当前的子文件夹中。
  • 好的,所以在我的 header.php 中。您是说在我的 html 代码周围使用 php 参数 () 并且我正文中的第一行应该是 (echo $_SERVER["header.php"];) 。我理解正确吗,它仍然会在所有平台上显示我的标题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-18
  • 2021-08-27
  • 2017-09-28
  • 2018-12-13
  • 2015-10-23
  • 2022-10-23
相关资源
最近更新 更多