0

クライアントサイト(PHP)で作業していますが、非常に奇妙な動作があります。include、include_once、require、またはrequire_onceを使用すると、まったく存在してはならない他のコンテンツも取り込まれるようです。誰かがこのようなことを聞​​いたことがありますか?

インクルードファイルが空であるか、テキストが含まれている場合でも、動作は持続します。これはある種の設定/グローバルな振る舞いでしょうか?

ありがとうございました

例えば:

<?php require_once('dir/subdir/file.php'); ?>
4

2 に答える 2

0

常に絶対パスを使用する必要があります。これは、ファイルを参照するための唯一の信頼できる方法です。

<?php require_once(__DIR__ . '/dir/subdir/file.php'); ?>

またはPHP5.2の場合:

<?php require_once(dirname(__FILE__) . '/dir/subdir/file.php'); ?>
于 2012-06-21T08:46:07.610 に答える
0

include/require 関数は、関数が呼び出されるプレースホルダーに必要なファイルの内容をコピーすることによって機能します。インクルードされたファイルが空の場合、空がコピーされます。認識できないコンテンツが含まれている場合は、インクルード パスが意図したものとは別の場所を指している可能性があるか、インクルード ファイルに余分なファイルが含まれている可能性があります。

グローバル設定として、php.ini で指定されたグローバル phpインクルード パスがあり、通常はライブラリまたはグローバル スクリプトを追加します。デフォルトでは、スクリプトに影響を与えるものを含めるべきではありません。

ファイルが include_path に見つからない場合、include は失敗する前に呼び出しスクリプト自身のディレクトリと現在の作業ディレクトリを最終的にチェックインします。

于 2012-06-21T08:48:47.970 に答える