php include_path設置
2008-12-25 10:16

一般情況下,我們設置php的include_path都會通過修改php.ini來實現。
有時候,我們沒有服務器的權限。有時候,我們把一個目錄加到include_path會讓已有的程序沖突。受cakephp的啟發:在app/webroot目錄下index.php有如下代碼
ini_set('include_path', CAKE_CORE_INCLUDE_PATH . PATH_SEPARATOR . ROOT . DS . APP_DIR . DS . PATH_SEPARATOR . ini_get('include_path'));
我們看到這個程序動態修改include_path。不過cake在這兒是把 CAKE_CORE_INCLUDE_PATH 和 APP_DIR 加到 include_path里,并且優先在這兩個目錄下找包含程序。
注意到它這里用到了PATH_SEPARATOR這個變量。這樣這段代碼在windows和linux下能通用。

從中受到啟發,我們可以根據自己的需要把一些include目錄動態的加入進來。比如說我們有很多libs:lib1,lib2,lib3等等。我們不必把這些libs都加到include_path里,因為它們之間可能沖突。
可以建立一個inc_dir,并把這個目錄加入到include_path。在inc_dir下,分別建立inc_path1.php inc_path2.php inc_path3.php
分別寫入
<?php
ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.$dirToLib1);
<?php
ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.$dirToLib2);
<?php
ini_set('include_path', ini_get('include_path').PATH_SEPARATOR.$dirToLib3);

在寫程序的時候,比如要用lib2的functions.php
就可以這么寫
<?php
require 'inc_path2.php';
require 'functions.php';
//....

來源:http://hi.baidu.com/_doc/blog/item/f3135fdf16b38e16495403a7.html