PHP Header 包括(导航栏)未显示

PHP Header Include (nav bar) not showing up

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

一旦我想通了,我就打算删除这个问题。话又说回来,我确信我不是唯一一个在制作他们的第一个网站时可能 运行 参与其中的人。

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

*原创 POST:通过另一个 post,我被告知使用 PHP.[=14 在多个页面上使用 nav/footer 会更容易=]

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

我的导航栏中也有一些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 标记。当您生成 html 输出时。 <?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>
';
?>

无需在头文件中添加 <?php ?> 代码,保持原样即可:

  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.

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

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 只是为了更好的练习,因为它更容易阅读。