2014-03-25 95 views
0

我在一個目錄中有兩個PHP文件。一個包括另一個,<?php include 'channels.phtml'; ?>,並且工作正常。當我將包含的文件移動到父目錄並調整呼叫時出現問題,<?php include '../channels.phtml'; ?>。在這種情況下,找不到文件。爲什麼我不能包含這個PHP文件?

這是爲什麼?

我使用Ubuntu的,我不認爲這是一個權限問題,但無論如何,這裏的細節:

父目錄:drwxrwxr-X 6金金4096年03月26 08:42組織

子目錄:drwxrwxr-×2金金4096年03月26 8點47分輪廓

包含的文件:-rwxrwxrwx 1金金26年3月28日8點42 channels.phtml

我試過require,結果相同。

編輯:

的修復提出mesutozer確實沒有工作,但它不應該是必需的。從對包括命令PHP手冊條目:

如果路徑定義 - 無論是絕對的(從驅動器盤符或\ Windows上,或/在Unix/Linux系統),或相對於當前目錄(以。開頭或..) - include_path將被完全忽略。例如,如果文件名以../開頭,則解析器將在父目錄中查找以查找所請求的文件。

請注意,phpinfo顯示他當前目錄(。)在包含路徑上,並且據我所知我沒有禁用相對路徑。

僅供參考,我正在使用ZF2。

+0

定義'父directory'。 – Shahar

+0

您可能已在php.ini中禁用相對路徑。是這樣嗎? –

回答

1

你需要在你的include路徑當前文件夾或指定其他文件的完整路徑爲:

<?php include dirname(__FILE__) . '/../channels.phtml'; ?> 
+0

這不應該需要! –

+0

正常情況下,它應該不是默認包含路徑包含當前目錄('。'),如'include_path =>。:/ usr/share/php:/ usr/share/pear'。 – mesutozer

相關問題