如何在不同文件夹中为每个页面包含一个标题

时间:2017-11-13 17:35:47

标签: php

如何为不同文件夹中的每个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 /...."

有没有办法解决?谢谢。

3 个答案:

答案 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)

您遇到的问题是relativeabsolute路径。

使用require_once时,您可以使用index.phpconfig.phpsetup.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;
}