2014-01-06 183 views
-1

中的文件這是我的目錄:包括包含的文件

global.php 
includes 
    class_bootstrap.php 
resourcemanager 
    index.php 

要在index.php文件global.php,我有:

require_once('../global.php'); 

而且在global.php,我有:

require_once(./includes/class_bootstrap.php); 

在運行時的index.php,我得到這個消息:

Warning: require_once(./includes/class_bootstrap.php): failed to open stream: No such file or directory in C:\xampp\htdocs\yurivn\global.php on line 15

Fatal error: require_once(): Failed opening required './includes/class_bootstrap.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\yurivn\global.php on line 15

我不知道如果在錯誤的目錄中的文件class_bootstrap.php PHP搜索,它可以搜索「的ResourceManager /包括/ class_bootstrap.php」的代替「包括/ class_bootstrap.php」,因爲如果我把index.php到與global.php相同的目錄,它完美的作品。

反正有使ResourceManager的目錄的index.php工作,而在global.phpclass_bootstrap.php改變什麼嗎?我只是寫一些插件,我不想改變任何屬於開發人員的東西。

+2

這是完整的錯誤信息,因爲我記得在「沒有這樣的文件或目錄」之後有完整的路徑被使用。 – Samuel

+0

對不起,我只是編輯了我的問題。 – Mee

+0

嘗試使用'dirname(__ FILE __)'或檢查:http://stackoverflow.com/questions/5610248/include-an-php-file-with-included-files –

回答

0

我得到了解決!只是包括前補充一點:

chdir('./../'); 

,幷包括global.php像他們一樣的目錄:

require_once('./global.php'); 

非常感謝你的努力幫助我,我真的很感激!

0

,如果你寫這樣

include('D:/wamp/www/ajax/a.php'); 
+0

有沒有其他方法?當我將它上傳到我的在線主機時會很煩人,或者更改我的域名 – Mee

+0

@Mee - 是的,我使用define發佈的方式可以讓你做到這一點 - 重構你的代碼,並很高興:-D –

0

完整路徑在你index.php它的工作原理,嘗試使用dirname(__FILE__)。因此,它應該是:

require_once dirname(__FILE__) . 'global.php'; 

編輯

由於index.php是1低級別從global.php,所以你必須添加/../,所以它應該是:

require_once dirname(__FILE__) . '/../global.php'; 
+0

「有沒有辦法讓index.php在resourcemanager目錄下工作,在global.php或class_bootstrap.php中?我只是寫了一些插件,我不想改變任何屬於開發人員的東西。「我在我的問題中提到它D:請告訴我,如果這是不可能的 – Mee

+0

@Mee:對不起,我已更新了答案.. –

+0

它返回此消息「 警告:require_once(C:\ xampp \ htdocs \ yurivn \ resourcemanager/global.php):無法打開流:沒有這樣的文件或目錄第4行的C:\ xampp \ htdocs \ yurivn \ resourcemanager \ manga.php 致命錯誤:require_once():無法打開所需的'C:\ xampp \ htdocs \ yurivn \ resourcemanager/global.php'(include_path =' 。; C:\ xampp \ php \ PEAR')位於第4行的C:\ xampp \ htdocs \ yurivn \ resourcemanager \ manga.php中。 global.php在/ htdocs/yurivn /中,而不是htdocs/yurivn/resourcemanager – Mee

0

試試這個

require_once('../includes/class_bootstrap.php'); 
+0

那麼還有很多其他文件與global.php需要它,所以我不能改變global.php中的任何東西。我在我的問題中提到它。 – Mee

+0

在global.php中進行更改時會發生新的錯誤? –

0

最簡單的方法是在您的索引或配置中設置ROOT_DIR,然後使用它來解析所有其他包含路徑。

3

你真正想要做什麼(爲了讓生活在未來更容易)是使用定義文件

只要你的代碼運行,然後一切都會好起來之前,這被定義 - 最簡單的方法是創建一個definitions.php文件,然後將其包含在您使用的每個頁面的頂部。

define("URL", "http://yoursite.com/"); //note the trailing/to make life easier. 

然後在你僅僅包括使用

require_once(URL . 'file.php'); 

這樣,在本地機器傳輸到新的主機只是定義或URL更改爲

define("URL", "http://siteontheinternet.com/"); 

,你是好去!

0

你可以試試下面:

<?php 

require_once __DIR__ . '/../global.php'; 

而且在global.php文件:

require_once __DIR__ . '/includes/class_bootstrap.php'; 
+0

OP聲明他不想改變'global.php'或'class_bootstrap.php'中的任何內容 –