我有200個站點,我支持,他們都使用:如何使用相對路徑和目錄在PHP
<?php
Include ("/_include/config.php");
?>
但打有此包括頁面的時候都示數出來。我需要做些什麼來解決它?
我認爲這是因爲它的相對路徑和目錄所在,我明白了,我只是不知道如何快速修復它。
的Windows 2008 R2 IIS 7.5 PHP 7
謝謝
我有200個站點,我支持,他們都使用:如何使用相對路徑和目錄在PHP
<?php
Include ("/_include/config.php");
?>
但打有此包括頁面的時候都示數出來。我需要做些什麼來解決它?
我認爲這是因爲它的相對路徑和目錄所在,我明白了,我只是不知道如何快速修復它。
的Windows 2008 R2 IIS 7.5 PHP 7
謝謝
要包含其他相對於當前腳本的路徑腳本,通常的解決辦法是將__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';
我同意更改所有新站點的默認值,但我需要爲現有的200找出它。它是iis問題還是它是ini問題? inlcusion(include_path ='c:\ php \ pear')錯誤導致我無法打開config.php文件。 –
如果內存正確地爲我服務,我相信用正斜槓啓動路徑將引用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
在PHP 5.6和PHP 7中會發生什麼變化?隨着PHP 5.6它仍然有效,但升級到7它不再有效。 –
使用getcwd()函數。這總是返回當前調用(未包含)文件的目錄路徑(exp。C:\ xampp \ htdocs)。相對於您可以編輯包括:
include getcwd() . "\include\config.php"; /* C:\xampp\htdocs\include\config.php */
瞭解命名空間,因爲這是處理這個 –
使用的最佳方法'回聲GETCWD();'打印當前的工作目錄。這是路徑相對於的目錄。確保配置文件存在 – Atan