如何对所有目录中的所有contentc php文件使用相同的header.php文件

时间:2012-05-20 12:03:21

标签: php html css

我已经创建了如下所示的头文件。

<style type="text/css" >
.menu{
    width: 100%;
    /*background-color: #333; */}
.menu ul{
    margin: 0; padding: 0;
    float: left;}

.menu ul li{
    display: inline;}

.menu ul li a{
    float: left; text-decoration: none;
    color: #000;
    padding: 10.5px 11px;
    /* background-color: #333; */}
    /* 
.menu ul li a:visited{
    color: white;}*/

.menu ul li a:hover, .menu ul li .current{
    color: #fff;
    background-color:#0b75b2;}

}
</style>
<div class="menu" style="width:430px; height:43px; margin-left:420px; margin-right:auto;">
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="about.php">About us</a></li>
<li><a href="contact.php">Contact us</a></li>
<li><a href="image-gallery/index.php">Image Gallery</a></li>
<li><a href="articles/index.php">Articles </a></li>
</ul>
</div>

所以我有deference目录,如图片库,文章

文件路径:

www/websitename/index.php

我已经将header.php包含到主index.php中,它正确链接但是当我包含图片库的索引文件没有正确链接时,

www/websitename/image-gallery/index.php
www/websitename/image-gallery/index.php

1 个答案:

答案 0 :(得分:0)

有各种解决方案,但最简单的实现方法是在config.php文件中定义。除其他外,define将指定根文件和根路径

的config.php

define('ROOT_URL', 'http://www.example.com/');
define('ROOT_PATH', '/var/www/html');

然后,在index.php中,你有

include('config.php');
include('header.php');

include('../config.php');
include('../header.php');

然后,在header.php中

<li><a href="<?php echo ROOT_URL; ?>index.php">Home</a></li> 

这个主题有很多变化,上面是最简单的,但这里有其他的。

为什么这种方法?因为在config.php中你可以使用

if($ _SERVER ['HTTP_HOST'] =='staging.example.com'){         //一组定义    } else {         //假设live - user另一组定义    }

并从dev / staging / live复制文件而不覆盖。


与hte include中的“../”相反,在每个文件中创建一个变量“root_file”为“./”或“../”。然后包括($ root_file。'header.php');在每个脚本中执行此操作,您也可以使用链接。


如果指定hte完整URL,则可能需要排除“http://”部分并添加您所使用的模式,如果您在https和http之间轻弹。在代码中添加URL(或在构建链接的函数中)


您可能希望将详细信息存储在数据库中(在这种情况下,您可能会在配置文件中存储数据库连接凭据


最后,您可以使用$ _SERVER [''](http://php.net/manual/en/reserved.variables.server.php)变量,或__FILE____ DIR__( http://php.net/manual/en/language.constants.predefined.php)确定你的位置。要小心,因为REQUEST_URI可能无法准确地反映脚本的位置(如果使用.htaccess进行重写规则),如果您使用符号链接,则SCRIPT_FILENAME / __FILE__ / __DIR__也可能存在。但是如果你知道你的服务器配置,这是一种非常便携的方式来处理“我在哪里?”。

所以,有很多选择。从简单开始,根据需要进行构建。