PHP包含来自另一个多个目录的文件

时间:2019-06-04 05:51:39

标签: php html

我知道它是重复的,有很多相同的问题。
我包含了多个文件,最近我启动了一个新目录,但无法使用其中的一些文件。

我想在多个目录的文件中包含header.php,但header.php中的那些链接在多个文件中不起作用。您可以在我的代码中看到它...

root
 |_admin
 |   |_user
 |   |   |__index.php
 |   |index.php
 |
 |_assets
 |    |_css/js/etc
 |
 |_includes
 |   |_header.php'

header.php

 <meta charset="utf-8">
 <meta http-equiv="X-UA-Compatible" content="IE=edge">
 <title>AdminLTE 2 | Dashboard</title>
 <!-- Tell the browser to be responsive to screen width -->
 <meta content="width=device-width, initial-scale=1, maximum-scale=1,   user-scalable=no" name="viewport">
 <!-- Bootstrap 3.3.7 -->
 <link rel="stylesheet" href="../assets/css/bootstrap.min.css">
 <!-- Font Awesome -->
 <link rel="stylesheet" href="../assets/font-awesome/css/font-awesome.min.css">
 <!-- Theme style -->
 <link rel="stylesheet" href="../assets/css/AdminLTE.min.css">
 <!-- AdminLTE Skins. Choose a skin from the css/skins. -->
 <link rel="stylesheet" href="../assets/css/skins/_all-skins.min.css">
 </head>

admin / index.php

<?php  include_once __DIR__.'/../includes/header.php';?>

它正常工作,因为一个目录向下。

admin / user / index.php

<?php  include_once __DIR__.'/../includes/header.php';?>

它无法正常工作,因为两个目录关闭。不要给我“ ../”或“ ../../”我已经尝试过的意见。

1 个答案:

答案 0 :(得分:0)

您最好先设置包含路径,然后以更简单的方式使用它,例如:

set_include_path( $_SERVER['DOCUMENT_ROOT'] . '/includes/' ); 


include 'header.php';

与CSS / JavaScript文件类似的事情-如果您使用根相对路径/assets/file.css等,则无论您使用什么嵌套级别,它都将可用。


header.php中,更改css链接以使其成为根相对链接(假设资产中存在目录结构!)

<link rel="stylesheet" href="/assets/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="/assets/css/AdminLTE.min.css">
<link rel="stylesheet" href="/assets/css/skins/_all-skins.min.css">

在使用header.php文件的任何启用PHP的年龄开始时,设置include_path

set_include_path( $_SERVER['DOCUMENT_ROOT'] . '/includes/' );

然后在需要使用它的页面上

include 'header.php';

如果您采用该逻辑/方法,则css应该可用于所有目录中的所有页面。