32

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

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

取决于我有多少嵌套文件夹。我确信有更好的方法来做到这一点。

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

php_value include_path "public/html/root"

...我失去了其余的路径(/usr/lib/php等)。我天真地尝试过:

php_value include_path $include_path . "(path)"

但这当然没有用。我如何在此列表中添加或附加单个路径.htaccess

4

2 回答 2

29

在子子目录中创建一个.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'.

支付价格:

您在每个子目录中乱扔一个 file .htaccess

于 2011-12-20T17:36:09.070 回答
24

如果您无法编辑php.ini文件本身,则可以添加

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

在你的include陈述之前。

但是,如果您发现自己遇到麻烦includerequire麻烦,则可能是代码异味。最好的解决方案是具有良好__autoload功能的良好面向对象设计。

于 2009-07-16T03:13:55.280 回答