2

すべての php インクルード ファイルはインクルード ディレクトリに配置する必要がありますか? そのディレクトリへのパスを使用して、任意のディレクトリからファイルを含めることはできますか? php インクルードを含む html ファイルには php 拡張子が必要ですか? もしそうなら、「含める」予定のメニューがすべて含まれている場合、すべてのhtmlドキュメントがphpになることを意味すると思います。あなたのサイトのすべてのファイルをphpファイルにするという許容できるプロトコルはありますか?

謙虚な敬意を表して一礼...

ps このトピックに関する良い聖書はありますか!?

4

4 に答える 4

7

特定の場所に PHP をインクルードしたり、ファイル拡張子を付けたりする必要はありません...

include('/path/to/your/file/with/any/extension.extension'); の呼び出し それをphpファイルとして含める必要があります

通常は、php 拡張子を付けて php コードを含むファイルを呼び出す方が安全です。

于 2008-11-24T16:16:30.583 に答える
1

サーバー上のどこからでもファイルを含めることができます(もちろん、ファイルアクセス権限とセキュリティ制限によって異なります)。

includeディレクトリを使用すると、物事を適切に整理するのに役立ちますが、必須ではありません。

ファイルにPHPコードが含まれている場合は、.phpファイルとして保存する必要があります。そうでない場合、ファイルを直接呼び出すと、コードは実行されません。これにより、アクセス方法に応じて動作が異なるファイルが残ります。これはおそらく意図したものではなく、セキュリティ上の脅威となる可能性があります。

これを回避するために、ファイルタイプをオーバーライドして、サーバーがすべての.htmlファイルをPHPスクリプトとして処理することを確認しました。PHPが含まれていない場合でもすべてのファイルの処理が遅くなるため、これはお勧めしません。驚き最小の原則に従ってください-HTMLファイルを.htmlにし、PHPファイルを.phpにします-そうすれば、誰もが幸せになります。

于 2008-11-24T18:41:09.387 に答える
1

PHP を .html ファイルに入れて include() すると、動作するはずです。ただし、誰かがサーバーから直接 .html ファイルを要求すると、未処理のすべての PHP コードが表示される可能性があり、これは危険です。したがって、これを行う場合は、これらのファイルを Web からアクセスできないディレクトリ (ドキュメント ルートの上など) に置くか、.html ファイルが PHP として扱われるように Web サーバーの構成を変更してください。

どのファイルも include() できるはずですが、PHP に open_basedir の制限がある場合、一部のディレクトリへのアクセスに問題が発生する可能性があります (ほとんどの Web ホストで見られる可能性があります)。

于 2008-11-24T16:27:41.887 に答える
0

ジェームズ・マッサー:

現在、Apache SSI インクルードについて言及していると思います ( http://httpd.apache.org/docs/2.2/howto/ssi.html#standard-footerを参照) 。

答えがわからないので、試してみましたが、結果は次のとおりです

Extension  Call method        PHP runs
 .html      browser            no
 .html      Apache #include    no
 .html      PHP include()      yes
 .php       browser            yes
 .php       Apache #include    yes
 .php       PHP include()      yes

(WinXP、Apache 2.2.3、PHP 5.2.26 および CentOS 5.2、Apache 2.2.3、PHP 5.1.16 でテストを実施)

したがって、あなたの答えは「はい」です。Apache SSI #include を介して PHP スクリプトを呼び出す場合、スクリプトには .php 拡張子 (または .php4 .php5 などの他の拡張子) が必要です。 PHP スクリプト)、それ以外の場合は実行されません。

于 2008-11-25T20:40:59.360 に答える