6

これが私のファイル構造です。[..]はフォルダです

[public]
[libs]
[crontab]
[logs]
[sessions]
[tmp]

config.php

ドメインは、ルートとしてパブリックフォルダに設定されます。config.phpファイルを含む他のすべてはルートの外にあります。構成には、db接続情報およびその他の必要な設定が含まれています。

パブリックフォルダ内のすべてのページにパス全体を配置する必要があるため、構成ファイルを含めます。問題は、ローカルマシンからパブリックサーバーにすべてを移動するときに、すべてのページを調べて、構成ファイルに含まれるパスを変更する必要があることです。もっと良い方法はありますか?多分php.iniまたはそのようなものでパスを設定しますか?

ありがとう

4

4 に答える 4

3

その特定のケースでは、次を使用できます。

include("$_SERVER[DOCUMENT_ROOT]/../config.php");
# Note: special exception array syntax within double quotes.

これは最初にディレクトリに解決されpublicますが、1レベル戻り../、docrootの外部の設定ファイルに到達します。


SetEnvただし、で使用して、その機会に別の環境変数.htaccessを定義することもできます。$_SERVER

于 2011-10-22T22:34:23.940 に答える
2

Webルート構造内の特定の場所に関連するファイルをインクルードするために私が頻繁に使用する手法は、次のようなインクルード/リクワイアを使用することです。

require_once(dirname(__FILE__) . '/path/to/include.php');

このように、ファイルが同じように相互に関連している限り、コードベースの移行でハードリンクや定数を変更する必要はありません。

于 2011-10-22T22:40:00.620 に答える
0

パスに定数を使用して一度変更し、すべてのパスでその定数を定義することができます-インクルードファイル

インクルードパス http://php.net/manual/en/function.set-include-path.phpもご覧ください。

于 2011-10-22T22:29:47.247 に答える
0

include_pathiniset_include_path()設定のドキュメントを参照してください。

于 2011-10-22T23:05:41.663 に答える