【问题标题】:include header php inside every file在每个文件中包含标头 php
【发布时间】:2012-08-09 18:52:14
【问题描述】:

我正在尝试在我制作的每个页面中包含一个 php 标头。现在据我所知,可以通过在每个文件中使用<?php include('header.php'); ?>来完成。

现在我的问题是我有 5 个页面,并且在标题 php 中我有一个导航,它链接到每个页面。当我加载标题时,我想更改加载标题的文件的链接。

例如:如果我打开主页,我希望标题将标题导航内的链接加粗。 这可能需要我在包含它或 smt 时将变量发送到头文件?如果是这样,那该怎么做? :D

提前谢谢你,丹尼尔!

【问题讨论】:

  • 我相信你正在寻找这个解决方案apaddedcell.com/… 也查找php frameworks
  • 编辑 header.php 以使用 $_SERVER['PHP_SELF'] 获取当前页面并相应地更改导航

标签: php header include


【解决方案1】:

您可以通过在包含标头之前设置变量或查看 URL 来做到这一点。

一个简化的例子:

$page = "home";
include "header.php"

header.php

if ($page == "home") { ... }

以下代码将为您提供 URL 中的文件名

$basename = basename($_SERVER['REQUEST_URI']);

所以如果你有http://mysite.com/index.php,它会给你index.php

您可以在 header.php 中使用它,类似于我上面描述的方式来决定哪个链接为粗体。

【讨论】:

  • 啊打败我了。我总是建议后者。它更容易维护,也没有那么混乱。
  • 哇,这太棒了,我刚刚使用了这个想法,效果很好 :D 非常感谢你,还有@Aleks G 和 Kuba Wyrostek 我也会尝试看看它是如何工作的我什么时候会尝试开发一个小框架:D
【解决方案2】:

您始终可以使用$_SERVER['SCRIPT_NAME'] 来获取所请求的最外层php 文件的名称。您可以相应地更改导航中的链接样式,即:

 <a href="some.php" style="font-weight: <?= $_SERVER["SCRIPT_NAME"] == '/some.php' ? 'bold' : 'normal' ?>">Link to Some</a>
 <a href="other.php" style="font-weight: <?= $_SERVER["SCRIPT_NAME"] == '/other.php' ? 'bold' : 'normal' ?>">Link to Other</a>

【讨论】:

    【解决方案3】:

    在下面的代码中,你可以将这个类调用到其他页面并将页面名称作为参数传递,并且可以很容易地调用一个jQuery函数

    <?php
    class header {
    function __construct($title = "Home", $page = 'home') {
        ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <title><?php echo $title; ?></title>
             <script type="text/javascript" src="js/jquery.js"></script>
                <script type="text/javascript" src="js/script.js"></script>
                <script>
            $(document).ready(function(){
                $('.<?php echo $page ?>').addClass('active');
                });    
            </script> 
            </head>
    <body>
         <ul class="nav">
            <li class="home"><a href="index.php"><br />HOME<br /></a></li>
             <li class="about"><br />ABOUT US<br /></li>
         </ul>
    <?php }} ?>
    

    【讨论】:

    • 这也很棒,但我正在尝试做更多的 html / css 的东西,并且只有在我无法做到的时候才使用 jQuery。投赞成票,非常感谢:)
    【解决方案4】:

    一种方法是从头文件中检查执行脚本的名称,如下所示(在 header.php 中):

    $page = basename($_SERVER["REQUEST_URI"]);
    if($page == 'index.php') {
        //header included from inside index.php
    }
    elseif($page == 'contact.php') {
        //header included from contact.php
    }
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多