這可能是一個好主意定義絕對路徑。因爲:
- 文件/文件夾可以像你的問題未來
- 防止出現問題改變位置(父文件不能是不同的呼叫相同)
- 如果你看一下代碼,你知道在哪裏你應該找到文件
所以,簡單地包括一個恆定的文件,在這裏你可以生成路徑的級聯,像這樣:
define('PATH_ROOT' ,__DIR__.'/');
define('PATH_CLASSES' , PATH_ROOT.'classes/');
// ...
個
並在腳本
require_once PATH_CLASSES.'controller/Class.CIAjaxHandler.php';
在這種情況下,你是絕對知道你有,並且其中要包含的文件。
假設你這種結構:
/root.php
<?php echo "Hello World";
的index.php
<?php
include 'path1/path1.php';
/路徑1 /路徑1。PHP
<?php
include '../root.php';
在這種情況下,如果你打電話/path1/path1.php
腳本的作品,因爲包括父文件夾root.php和它的確定。 但是,如果您致電/index.php
它不起作用,因爲包含文件已經相對於父文件夾。
所以,如果在你的軟件中你打算在不同的位置調用不同的文件,使用常量可以是一個解決方案。
另一種解決方案可以設置爲include path或在相對路徑開始時始終指定絕對路徑爲__DIR__
。
你得到了什麼錯誤? – hanleyhansen
警告:require(../ controllers/Class.CILoginController.php):無法打開流:C:\ Program Files文件(x86)中沒有這樣的文件或目錄\ Apache Software Foundation \ Apache2.2 \ chapAptana \ classes \ misc \ Class.CIBootstrap.php第39行 – netigger
您是否在require之前嘗試過set_include_path()? – Jimbo