.htaccess の PHP の include_path にパスを追加する方法
-
16-09-2019 - |
質問
現在、私のサイトでは次のようなステートメントを使用しています。
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
そのディレクトリに適しています。
利点:
- 深さが異なる複数のインクルードを使用する醜いハックはありません。ただ
include 'head.php'
. - 編集に依存しない
php.ini
. - 使用する必要はありません
set_include_path()
含める前に。 - のような定数を含めることに依存しません。
include INCLUDE_PATH . 'head.php'
.
支払うべき価格:
サブサブディレクトリにそれぞれファイルを配置します。 .htaccess
.
所属していません StackOverflow