質問

現在、私のサイトでは次のようなステートメントを使用しています。

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?

役に立ちましたか?

解決

あなたはphp.iniファイル自体を編集することができない場合は、あなたが追加することができます。

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

あなたのinclude文の前に。

あなた自身がincludeまたはrequireトラブルを抱えて見つけた場合、

しかし、それはおそらく、コードのにおいです。最善の解決策は、良い__autoload機能との良好なオブジェクト指向の設計になります。

他のヒント

サブサブディレクトリにファイルを作成します .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