所以,检查这个目录结构
假设我在/directory/main_file.php中并且我include('../include_one.php');
在include_one.php中调用,以包含include_two.php.我需要打电话include('include_two.php);
还是include('../include_two.php');
?
所以我的问题是:当包含文件时,"相对包含路径"是否转移到包含文件,还是保留在主包含文件中?
我知道最好的选择是拥有一个包含root_path的config.php,但是在这个阶段这是不可能的.
目录结构
/include.php
/start/start.php
/folder1/includeone.php
/folder1/folder2/includetwo.php
这是每个文件的内容
start.php
<?php
echo 'including ../include.php<br />';
include('../include.php');
?>
Run Code Online (Sandbox Code Playgroud)
include.php
<?php
echo 'including folder1/includeone.php<br />';
include('folder1/includeone.php');
?>
Run Code Online (Sandbox Code Playgroud)
includeone.php
<?php
echo 'including folder2/includetwo.php<br />';
include('folder2/includetwo.php');
?>
Run Code Online (Sandbox Code Playgroud)
includetwo.php
<?php
echo 'done<br />';
?>
Run Code Online (Sandbox Code Playgroud)
而输出是
包括../include.php
包括folder1/includeone.php,
包括folder2/includetwo.php
完成
Pas*_*TIN 52
"相对包含路径"不会转移到包含的文件...这意味着使用相对路径通常会很糟糕.
我几乎一直使用的一个更好的解决方案是始终使用绝对路径 - 您可以使用相关和绝对路径来混合__DIR__
,以获取包含写入文件的目录.
例如,include_one.php
你在使用:
require_once __DIR__ . '/include_two.php';
Run Code Online (Sandbox Code Playgroud)
包含include_two.php
与其位于同一目录中的文件include_one.php
.
而且,main_file.php
你会使用:
require_once __DIR__ . '/../include_one.php';
Run Code Online (Sandbox Code Playgroud)
包含include_one.php
一个目录的文件.
这样,无论从哪个文件中调用它们,您的包含都将起作用.
归档时间: |
|
查看次数: |
14927 次 |
最近记录: |