チュートリアル
PHP の 10 の高度なテクニック (パート 2)
3. ファイルは私たちの友達です
開発している Web サイトの規模に関係なく、コードが HTML コードであっても PHP コードであっても、コードの再利用の重要性を認識する必要があります。たとえば、著作権情報を含むフッターは少なくとも年に 1 回は変更する必要がありますが、1,000 ページある Web サイトの場合、これは煩わしい作業です。
PHP には、コードの再利用を実現するのに役立つ関数が少なくともいくつかあります。使用される関数は、再利用するコードによって異なります。主な関数は次のとおりです。
* include() と include_once()
* require( ) と require_once()
include() 関数は、指定されたファイルをインクルードして計算を実行します。例:
include('/home/me/myfile')
インクルードファイル内のコードは include() です。 include() と fopen() を組み合わせて使用すると、自分のサーバー上の静的ファイルと別のサーバー上のターゲット ファイルを含めることができます。
include_once() は include() と同じ機能を持ちます。 2 つの違いは、ファイル内のコードが既存のスクリプトに既にインクルードされているかどうかを確認することです。コードが既に存在する場合、そのコードは再度インクルードされません。
require() 関数は、それ自体を指定されたファイルの内容に置き換えます。この置換プロセスは、include() のように最初に計算されるのではなく、PHP エンジンがコードをコンパイルするときに発生します。 require() 関数は静的要素でよく使用され、include() は動的要素でよく使用されます。 include_once() と同様に、require_once() は、指定されたコードが挿入されているかどうかを最初に確認します。コードがすでに存在する場合、そのコードは再度挿入されません。
その内容も理解するために、変数を含まない、または他の実行スクリプトに依存しない、著作権情報、静的テキスト、その他の要素で require 関数を使用することを好みます。例:
]
<
//copyright( '/home/mycopyright');ファイルの先頭 () で多くの関数を制御します:
// 関数ライブラリを取得します
include('/home/me/myfunctions')
// 私の関数で PHP の処理を行います ?> ;
;
; 「include と require はどこにありますかこの質問に対する簡単な答えは、「システム内のどこにでも」です。コードにユーザー名とパスワードを使用したデータベース接続が含まれている場合、それらをすべてドキュメント ルートに配置して誰でも利用できるようにすることは絶対にありません。
インクルードファイルまたは必須ファイルは、PHP が実行されているシステム上のユーザーがアクセスできる限り、システム上のどこにでも置くことができます。これらのファイルに任意のサフィックスを付けることも、サフィックスを使用しないこともできます。
Web サイト内の要素を指定するために include() と require() を使用するのは一般的な現象であり、Web サイトをアップグレードする必要がある場合に非常に便利です。
4. PHP とファイルシステムのメンテナンス
PHP にはファイルシステムに関連する多くの機能があり、これらの機能はファイルを開くだけでなく、ディレクトリの内容を表示したり、ファイルを移動したりすることもできます。 PHP はインターネット ベースのファイル エクスプローラーを開発します。
ファイル パスの説明: Windows ではパスに / と記号を使用できますが、他のオペレーティング システムでは / 記号のみを使用できます。一貫性を保つために、/ 表記を一律に使用します。
以下のスクリプトサンプルはディレクトリ一覧を表示することができ、コード内にコメントが含まれています:
/*読み込むディレクトリのフルパス名を$dir_nameという変数に保存します。 */
$dir_name = "/home/me/";
/* 指定されたディレクトリを開いた結果を値とするハンドルを作成します */
$dir = opendir($dir_name); /* リスト要素(ファイル名)を配置するテキストブロックを作成 */
$file_list = "
"
/* while ステートメントを使用して、開いたディレクトリ内のすべての要素を読み取ります。ファイル名が「.」または「..」でない場合は、リストに名前を表示します */
while ($file_name = readdir($ dir) ) {
| }
$file_list .= "
"
/*開いているディレクトリを閉じてPHPモジュールを終了します*/
>
P> echo "$dir_name"; ?>
;