2010-11-21 50 views
0

我有一個應用程序,其中.php文件/library/目錄 例如存儲一些數據。 /library/config.php更改include_path或prepend每個php文件

在我的舊主機library是包含路徑,所以我能夠做到require('config.php')任何地方沒有提供真正的路徑。

是否有機會自動預先加載每個.php文件,以更新包含路徑?

有一些情況:

  • 應用程序不遵循前端控制器模式
  • 我不得不php.ini
  • 我在include_path
  • 沒有直接訪問任何迪爾斯的已經存在進不去
  • 我不能使用php_flag include_path
  • 我不能使用php_flag auto_prepend_file
  • 一些.php文件在.htaccess

任何其他方式自己的規則,而不是ctrl+H<? set_include_path…取代<?

編輯:

我所尋找的是類似的東西:

RewriteCond %{REQUEST_FILENAME} !-F 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (^*\.php)$ /library/$1 [NC,L] 

回答

0

在文件的頂部添加set_include_path()在您需要的庫文件來調整在運行時(包括路徑無需觸摸php.ini.htaccess文件)。

set_include_path(dirname(__FILE__).'/library'.PATH_SEPARATOR.get_include_path()); 

這會將您的庫路徑預先設置爲當前的包含路徑,並使這些文件直接可用。您需要調整'/library'以匹配您的庫路徑(相對於當前文件的位置)。

+0

這是我的'ctrl + h'解決方案。任何其他? – takeshin 2010-11-21 21:16:11

+0

我建議在通用文件中執行上述操作,並將其包含在每個需要它的文件中。這使得你的代碼更易於維護,因爲如果有變化(如庫路徑),你不需要觸及每個文件。另外,我建議不要使用短打開的標籤(使用'<?php'而不是'<?'),因爲它們與xml聲明衝突。這可能會導致一些麻煩。 – jwueller 2010-11-21 21:23:03

0

ini_set()禁止嗎?這也允許你修改include_path

+0

禁用'ini_set'和'set_inlcude_path',但這不是這種情況。 – takeshin 2010-11-21 21:17:50

相關問題