如何为不同文件夹中的每个html页面使用一个header.php文件?
例如:
我的 header.php 文件位于主页/包含文件夹。
我包括这样的 include“includes / header.php”;
到目前为止,一切都还好。
我的主页上有一个名为“users”的差异文件夹
我想在主页/用户/ index.php 上添加 header.php 文件,该文件位于主页/包含文件夹中文件。
我包括这样的“include ”../ includes / header.php“,但我有错误。
原因在我的header.php文件中,我调用了我的css文件,如 <link href="assets/css/demo.css"/>
所以我需要将 header.php 文件复制到用户文件夹。
我需要更改 href =“assets /....”,如 href =“../ assets /...."
有没有办法解决?谢谢。
答案 0 :(得分:1)
append the line to all php files which require the header
Note: please use the correct path in file_location/header.php
<?php
include_once('header.php');
?>
答案 1 :(得分:0)
首先,您可以使用全局变量为需要该变量的所有php文件创建config.php
文件。将它放在项目的主文件夹中,并将其包含在您需要的任何文件中。
然后,您可以在$path = '/absolute/path/to/your/project';
中定义config.php
变量,并在需要时使用它。然后,如果您需要更改此路径值,则只应更改该变量的值。
另一方面,它是一个魔术常量__DIR__
(http://php.net/manual/en/language.constants.predefined.php),它返回文件的绝对路径(如果在includes/header.php
中使用此常量,它将返回{ {1}},但如果您在/path/to/homepage/includes/
中使用它,则会返回users/index.php
)。
在这种情况下,当您键入/path/to/homepage/users/
时它应该可以工作,但我建议您首先解决您的问题,因为如果您的项目结构将被更改,您必须更改任何带有这些行的文件它
答案 2 :(得分:0)
您遇到的问题是relative
与absolute
路径。
使用require_once
时,您可以使用index.php
或config.php
或setup.php
内定义的常量,具体取决于您的应用。它看起来像是:
require_once APP_PATH . 'includes/header.php';
在你的情况下,APP_PATH可以定义为include之前的完整路径,即。 define('APP_PATH', dirname(__FILE__) . '/');
或者如果您想对其进行硬编码define('APP_PATH', '/home/www/my-app/');
您可以使用css文件的绝对路径来使资产起作用,
<link href="/assets/css/demo.css"/>
或者为了更好的可移植性,您可以创建一个小函数来包装所有样式调用:
<link href="<?php echo css_asset('demo.css'); ?>"/>
// Then the possible definition of css could be
function css_asset($style)
{
return '/assets/css/' . $style;
}