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'

支払う価格:

サブサブディレクトリにそれぞれファイルを散らかします.htaccess

于 2011-12-20T17:36:09.070 に答える
24

ファイル自体を編集できない場合はphp.ini、追加できます

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

あなたのinclude声明の前に。

ただし、include問題requireが発生した場合は、コードの臭いである可能性があります。最善の解決策は、優れた機能を備えた優れたオブジェクト指向設計__autoloadです。

于 2009-07-16T03:13:55.280 に答える