get_include_path()函數用於返回當前PHP 配置中的文件包含路徑。這些路徑是PHP 在include 、 require等函數中查找文件時所使用的路徑。你可以將多個目錄添加到文件包含路徑中,PHP 會按順序查找這些目錄。
string get_include_path(void)
該函數沒有參數,返回一個包含路徑的字符串,路徑之間由操作系統默認的分隔符(在UNIX 系統中是冒號: ,在Windows 系統中是分號; )分隔。
為了更好地理解get_include_path() ,我們來看一個簡單的示例:
<?php
// 獲取當前的文件包含路徑
$currentIncludePath = get_include_path();
echo "當前的文件包含路徑是:$currentIncludePath";
?>
在這段代碼中,我們調用了get_include_path() ,並將返回值保存在$currentIncludePath變量中,然後輸出到屏幕。執行這段代碼後,你將看到當前PHP 配置中的所有文件包含路徑。
我們可以結合get_include_path()和set_include_path()函數來動態設置文件的包含路徑。 set_include_path()函數用於設置新的文件包含路徑,它會替換掉之前的路徑,或者可以在原有路徑的基礎上添加新的路徑。
<?php
// 獲取當前的包含路徑
$currentIncludePath = get_include_path();
echo "當前的文件包含路徑是:$currentIncludePath\n";
// 設置新的文件包含路徑
$newIncludePath = "/var/www/includes";
set_include_path($newIncludePath . PATH_SEPARATOR . $currentIncludePath);
// 輸出更新後的包含路徑
echo "更新後的文件包含路徑是:" . get_include_path() . "\n";
// 現在我們可以在新的路徑下包含文件
include('myfile.php');
?>
在這個示例中,我們首先獲取了當前的文件包含路徑。接著使用set_include_path()函數動態添加了一個新的路徑/var/www/includes ,並將其與原有路徑結合在一起。通過PATH_SEPARATOR ,我們確保了不同操作系統間的路徑分隔符差異。
更新後的路徑會影響所有後續的include或require調用,因此我們可以在新的路徑下加載myfile.php文件。
你還可以將多個路徑添加到包含路徑中,並使用get_include_path()來驗證這些路徑。 PHP 會根據路徑的順序來查找文件,這意味著如果文件在多個路徑中都有,那麼PHP 會加載第一個找到的文件。
<?php
// 設置多個路徑
$newIncludePath = "/var/www/includes:/usr/local/lib";
set_include_path($newIncludePath);
// 輸出新的包含路徑
echo "新的文件包含路徑是:" . get_include_path() . "\n";
// 現在我們可以在多個路徑中查找文件
include('myfile.php');
?>
在這個示例中,我們將兩個目錄/var/www/includes和/usr/local/lib添加到文件包含路徑中,並通過set_include_path()更新了包含路徑。通過get_include_path()輸出的路徑,你可以驗證文件加載的順序。