如何在 .htaccess 中将路径附加到 PHP include_path

2022-08-30 14:16:03

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

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


答案 1

在子子目录中创建包含内容的文件.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


答案 2

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

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

在你的陈述之前。include

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


推荐