更改include_path或预先添加每个php文件

时间:2010-11-21 20:24:48

标签: apache .htaccess mod-rewrite php

我有一个应用程序,它将一些数据存储在.php目录中的/library/个文件中, 例如。 /library/config.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]

2 个答案:

答案 0 :(得分:0)

在文件顶部添加set_include_path(),以便在运行时调整包含路径(无需触及php.ini.htaccess文件)。

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

这会将您的库路径添加到当前包含路径,并使其中的文件可直接使用。您需要调整'/library'以匹配您的库路径(相对于当前文件的位置)。

答案 1 :(得分:0)

ini_set()也被禁止了吗?这也允许您修改include_path