2017-02-20 91 views
0

我有200個站點,我支持,他們都使用:如何使用相對路徑和目錄在PHP

<?php 
Include ("/_include/config.php"); 
?> 

但打有此包括頁面的時候都示數出來。我需要做些什麼來解決它?

我認爲這是因爲它的相對路徑和目錄所在,我明白了,我只是不知道如何快速修復它。

的Windows 2008 R2 IIS 7.5 PHP 7

謝謝

+0

瞭解命名空間,因爲這是處理這個 –

+1

使用的最佳方法'回聲GETCWD();'打印當前的工作目錄。這是路徑相對於的目錄。確保配置文件存在 – Atan

回答

0

要包含其他相對於當前腳本的路徑腳本,通常的解決辦法是將__FILE__幻常量與dirname結合功能如下所示:

include dirname(__FILE__).'/_include/config.php'; 

您還可以使用'..'或嵌套調用dirname遍歷父可怕ctories:

include dirname(dirname(__FILE__)).'/_include/config.php'; 
// is equivalent to: 
include dirname(__FILE__).'/../_include/config.php'; 
+0

我同意更改所有新站點的默認值,但我需要爲現有的200找出它。它是iis問題還是它是ini問題? inlcusion(include_path ='c:\ php \ pear')錯誤導致我無法打開config.php文件。 –

+0

如果內存正確地爲我服務,我相信用正斜槓啓動路徑將引用Windows上文件系統的根目錄。所以'include'/ _include/config.php''會引用'C:\ _include \ config.php'。我可以想到一個可以避免修改任何代碼的解決方案就是創建一個[junction](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006(v = vs.85))。 aspx)從'C:\ _ include'移動到'_include'目錄實際存在的位置(假設'_include'是在所有站點共享的單個目錄)。 – Gondrup

+0

在PHP 5.6和PHP 7中會發生什麼變化?隨着PHP 5.6它仍然有效,但升級到7它不再有效。 –

0

使用getcwd()函數。這總是返回當前調用(未包含)文件的目錄路徑(exp。C:\ xampp \ htdocs)。相對於您可以編輯包括:

include getcwd() . "\include\config.php"; /* C:\xampp\htdocs\include\config.php */