2016-07-21 30 views
1

在第3行,我用的是以下幾點:如何正確地要求在另一個目錄中的文件?

require'./inc/connection.php' or die ("Cannot find the proper configuration file."); 

我得到這個錯誤:

PHP Warning: require_once(1): failed to open stream: No such file or directory in (directory) 

如果有人可以幫助,這就是我把它設置。

index.php is the file that is using the require. connection.php is in the "inc" directory.

+0

'require __DIR__。 「/inc/connection.php」;'如果它仍然不工作'echo __DIR__。 「/inc/connection.php」;並確保它實際上是正確的路徑。 – Bailey

+0

另一方面:As * require *當文件沒有找到時總是會引發致命錯誤,* die *將永遠不會被調用,因此是不必要的。 –

回答

0

把兩個點(..)前/ INC

像下面。使用這個代碼而不是你的。

require '../inc/connection.php' or die ("Cannot find the proper configuration file."); 
+0

這仍然不起作用,它拋出相同的錯誤。 – astral

+0

比在inc目錄中檢查連接文件的名稱。 –

+0

我做了,而且都是一樣的。 – astral

0

你需要把兩個點,當你想back.here你有index.phpinc遍歷一個目錄在相同的目錄,所以你應該寫

require 'inc/connection.php' or die ("Cannot find the proper configuration file."); 
+0

我放棄了。這仍然是錯誤的。 – astral

+0

先嚐試給絕對路徑,如果它的工作,然後將其更改爲相對路徑 – Saurabh

1

您也可以這樣說,以防萬一您移動源代碼時路徑發生變化。

$basePath = "/systemdir"; 
$incPath = $basePath."/inc/"; 
require $incPath.'connection.php' or die ("Cannot find the proper configuration file."); 

require $incPath.'connection.php'; 

你真的不需要在最後的模具來檢查,如果文件沒有在目錄中找到PHP會自動顯示一個錯誤。

如果您使用的是Windows,試試這個

require __DIR__ . '/connection.php'; 

require 'inc/connection.php'; 
+0

@ Saurabh謝謝你指出。 – unixmiah

+0

astral,你在Windows或Linux? – unixmiah

+0

如果您在Mac上,請使用該命令並進入該目錄。一旦你在那裏,做一個pwd命令並找到路徑。複製路徑並將其粘貼到代碼中。找到路徑時,直接將整個路徑輸入到require中。 – unixmiah

1

當你包括文件,您可以:

1指定該文件(開始的完整路徑與/

例如

require '/var/www/html/site-name/site/lib/inc/connection.php' or die ("Cannot find the proper configuration file."); 

請注意,/var/www/site-name/site/lib/部分?這是爲了這個例子。真正的絕對路徑取決於服務器以及所需文件夾所在的位置。

2-指定的相對路徑爲文件(文件夾或文件名開頭)

例如

require '../inc/connection.php' or die ("Cannot find the proper configuration file."); 

使用相對路徑意味着你從文件夾中開始代碼實際上存在。例如,路徑:'connection.php'意味着connection.php駐留在相同的當前文件夾中。

特殊名稱...分別表示當前和父目錄/文件夾。因此,要包含一個名爲connection.php的文件,該文件位於代碼調用的父文件夾中,您可以通過../connection.php來定位它。

因此,爲了解決您的問題,您需要查明的是特定的文件你嘗試的目標相對。它看起來像當前路徑開始.這意味着當前的文件夾(這是沒有意義的)。

一個簡單的猜測是它應該是..而不是.,但不一定是這樣。自該代碼實施以來,該文件可能已被移動,或名稱更改爲inc的文件夾。

+0

我試過了,它最終使它成爲公司,抓住了connection.php,但沒有發生任何事情。 – astral

+0

您可以包含正在編寫代碼的位置以及inc/connection.php文件的完整路徑的完整路徑嗎?另外你怎麼知道這個文件實際上並沒有被這個方法所包含,並且「沒有任何事情發生」是由於你如何測試它的? –

相關問題