2013-03-14 86 views
-1

我即將發瘋。不知道爲什麼它一直失敗。require_once失敗

index.php 
chdir(__DIR__); 
if(!defined('ARCTICA_CORE_DIR')) 
    define('ARCTICA_CORE_DIR', './arctica/core/'); 

require_once(ARCTICA_CORE_DIR . 'Arctica.php'); 

echo ARCTICA_CORE_DIR -> Correctly outputs ./arctica/core/ 

BUUUUUUT; 

Warning: require_once(./arctica/core/Arctica.php): failed to open stream: No such file or directory in C:\wamp\www\Arctica\index.php on line 18 
Fatal error: require_once(): Failed opening required './arctica/core/Arctica.php' (include_path='.;C:\php\pear') in C:\wamp\www\Arctica\index.php on line 18 

操作系統是Windows 7

這是我的應用程序的路徑:

C:\wamp\www\Arctica\index.php 

這是文件的我想需要的路徑:

C:\wamp\www\Arctica\arctica\core\Arctica.php 

怎麼了?我錯過了什麼嗎?我敢打賭,這是一些我忽略的東西...

+0

您是否嘗試過使用DIRECTORY_SEPARATOR常量而不是硬編碼/ – ZolaKt 2013-03-14 22:54:00

+0

做:'echo ARCTICA_CORE_DIR。 'Arctica.php';'你知道問題是什麼。 – 2013-03-14 22:54:07

+0

文件權限。 – 2013-03-14 22:54:14

回答

0

問題是有第二個不必要的.php擴展名。 Arctica.php.php.

Windows 7沒有顯示文件擴展名。當我將文件複製到Linux環境中時我注意到了它。

2

可能C:\wamp\www\Arctica\arctica是不是在你的包含路徑。說(include_path='.;C:\php\pear')。你可以找到echo get_include_path();,你可以使用set_include_path

爲你添加自己的路徑。爲了這個目的,真的不需要開始玩chdir();

另外我會刪除點。

define('ARCTICA_CORE_DIR', '/arctica/core/');

,然後爲什麼不使用完整路徑?

define('ARCTICA_CORE_DIR', __DIR__.'/arctica/core/'); 
+0

我從來沒有依賴過set_include_path。每個應用程序用於正常工作。我會嘗試你的解決方案。編輯:仍然是一樣的。 「警告:require_once(C:\ wamp \ www \ Arctica/arctica/core/Arctica.php):無法打開流:」 – 2013-03-14 22:58:59

相關問題