目前在我的网站上,我正在使用以下语句:

include 'head.php';
include '../head.php';
include '../../head.php';

取决于我深入多少嵌套文件夹。我敢肯定,有一种更好的方法可以做到这一点。

我相信 .htaccess 是解决方案,但我不确定如何实施它。如果我插入:

php_value include_path "public/html/root"

...我失去了其余的道路(/usr/lib/php, , ETC)。我天真地尝试了:

php_value include_path $include_path . "(path)"

但是,这当然不起作用。我该如何使用或附加到此列表的单一路径 .htaccess?

有帮助吗?

解决方案

如果您不能编辑 php.ini 文件本身,您可以添加

set_include_path(get_include_path() . PATH_SEPARATOR . $path_to_add);

在你之前 include 语句。

但是,如果您发现自己有 include 或者 require 麻烦,这可能是代码气味。最好的解决方案是一个良好的面向对象的设计, __autoload 功能。

其他提示

在sub-sub-directories中创建文件 .htaccess 与内容

php_value include_path '../../includes'

管他呢 include_path 适合该目录。

优点:

  1. 没有具有不同深度的丑陋骇客。只是 include 'head.php'.
  2. 不依赖编辑 php.ini.
  3. 无需使用 set_include_path() 包括之前。
  4. 不依赖于包括常数 include INCLUDE_PATH . 'head.php'.

支付价格:

您可以乱扔子式目录,每个导演 .htaccess.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top