use*_*599 2 php directory include
我已经包含多个文件,我最近开始了一个新目录,我无法让我的一些包含工作.
例如,我在postpage.php中包含了这个,它位于example.com/c/postpage.php:
include '../includes/overall/header.php';
Run Code Online (Sandbox Code Playgroud)
它的工作原理是它进入根目录并包含header.php但我的问题是header.php还包括未包含的文件.
header.php中的代码是:
include 'includes/head.php';
Run Code Online (Sandbox Code Playgroud)
这是行不通的
如果我将header.php更改为:
include '../includes/head.php';
Run Code Online (Sandbox Code Playgroud)
然后它打破了我网站的其余部分,同时只为postpage.php工作
欢迎任何建议.
防止可能破坏相对路径的CWD更改的最佳方法是使用绝对路径包含文件.
一个简单的方法是使用__DIR__常量.
例:
文件结构:
serverRoot (/)
|-usr
|-local
|-www
|-index.php
|-bootstrap.php
|-includes
|-a.php
|-overall
|-b.php
|-c.php
Run Code Online (Sandbox Code Playgroud)
让我们说:
的index.php
$basedir = realpath(__DIR__);
include($basedir . '/bootstrap.php');
include($basedir . '/includes/a.php');
Run Code Online (Sandbox Code Playgroud)
a.php只会
global $basedir;
include($basedir . '/includes/overall/b.php');
Run Code Online (Sandbox Code Playgroud)
bootstrap.php中
global $basedir;
include($basedir . '/includes/overall/c.php');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10182 次 |
| 最近记录: |