今日は、PHP.INI ファイルの興味深い内容についてお話しましょう。
PHP 愛好家なら誰でも PHP.INI ファイルに精通していると思います。PHP の以前のバージョンである PHP3.0 では、このファイルは PHP3.INI という名前でした。通常、ファイルはオペレーティング システムの Windows ディレクトリにあります。 PHP.INI ファイルには、Windows システムと同様に、セミコロンが多数含まれているのを誰もが見たことがあります。つまり、これらのセミコロンは、設定ファイルをわかりやすくするために使用されます。開発者は、セミコロンの後の各セミコロンに直面して、構成関数が簡単に説明されており、これらのコメント行はシステム処理中に無視されます。もちろん、もう 1 つの利点は、PHP システム構成が変更されたときに、特定の行にコメントを追加または削除するだけで済み、簡単で便利であることです。
auto_prepend_file 文字列は、すべての php ファイルを読み取る前に自動的に解析して実行するファイルを指定できます。これは、PHP、ASP、HTML (画像ファイルは除く) などの任意のファイルにすることができ、特殊な状況で非常に役立ちます。たとえば、各 PHP ページに広告を追加したい場合、また Web サイトを開発していて、PHP ページを読む前にすべての訪問者に認証を行わせたい場合は、検証コードを別のファイルに作成し、文字列を設定するだけです。ここのファイル名に。慎重な読者はこう尋ねるでしょう: これらの関数が特定のファイルにのみ必要な場合はどうすればよいですか? 例:
myprefix.php file
if (strstr(strtoupper( PHP_SELF) ,"/PHPTEST) /"))
echo "My ad!
";
?>
このように、auto_prepend_file="myprefix.php" と設定している限り、phptest ディレクトリ内のすべての PHP ファイルはあなたの広告部長も含まれています!このファイルは include_path が指すパスに配置する必要があることにも注意してください。そうしないと、後述するエラーが発生する可能性があります。
auto_append_file string は上記と同様の機能ですが、PHP ファイルの末尾に自動的に追加される点が異なり、PHP プログラムが exit() で終了した場合には機能しません。この機能を使用すると、会社の住所に簡単に脚注を追加できます。
include_path string このパラメータの機能は、include()、require() などの関数に、ここで定義されたパス内のファイルを検索させることです。DOS 時代に使用されていた SET PATH コマンドに少し似ています。このパラメータはパスのリストを提供できますが、パスは UNIX ではコロン、NT ではセミコロンで区切られ、スラッシュの方向も異なります。例:
UNIX の例: include_path=.:/home/lib
NT 例: include_path=".:c:homelib" ここで、「.」は現在のディレクトリを表します。
gpc_order string
GPC は 3 つの変数 GET/POST/COOKIE の最初の文字であり、その順序は 3 つの変数を処理する際のシステムの優先順位を反映しており、左から右の順に優先順位が高くなります。デフォルト設定は GPC であるため、同じ名前を持つ 2 つまたは 3 つの変数がサーバーに渡されると、システムはそれらを優先順位に従って並べ替え、優先順位の高い変数のみを読み取ります。また、アクセス方法(メソッド)が同じ場合、Cookieを無視してGETではなくPOSTを使用するために「GP」に設定する例もあります。もちろん、プログラミングのプロセス中に、同じ名前の変数を同時に異なる方法で渡すことは避けるべきです。そうしないと、プログラムの可読性が低下し、異なる構成のシステムでは異なる出力結果が発生する可能性があります。
magic_quotes_gpc boolean このパラメータは、GET/POST/COOKIE の 3 つの変数に含まれる特殊文字、一重引用符、二重引用符、スラッシュ、およびエスケープ文字のバックスラッシュ (C 言語で一般的に使用される "") を追加するかどうかを決定できます。 )? PHP データベースなどのシステムでは、一重引用符などの文字は通常、実際の文字と区別するために特別な意味を持っているため、ユーザー側から取得する変数に一重引用符が含まれている場合に、magic_quotes_gpc=on を設定できます。エスケープ文字が前に追加され、必要に応じて関数tripslashes(string str);を使用できます(この関数は文字列内のバックスラッシュエスケープ文字「」を削除できます。2つの連続したバックスラッシュがある場合は、1つを削除します)バックスラッシュが 1 つだけの場合は、エスケープ文字 "" を削除するだけです: