ホームページ  >  記事  >  php教程  >  PHP の 10 の高度なテクニック (パート 2)

PHP の 10 の高度なテクニック (パート 2)

WBOY
WBOYオリジナル
2016-06-21 09:13:511289ブラウズ

上級|ヒント

3. ファイルは私たちの友達です

開発している Web サイトの規模に関係なく、コードが HTML コードであっても PHP コードであっても、コードを再利用することの重要性を認識する必要があります。たとえば、著作権情報を含むフッターは少なくとも年に 1 回は変更する必要がありますが、1,000 ページあるサイトの場合、これは煩わしい作業です。

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 関数を使用することを好みます。例:


?>
をよく使います。 () をファイルの先頭に追加して、多くの機能を制御します。

という質問に対する簡単な答えです。コードにユーザー名とパスワードを含むデータベース接続が含まれている場合、それらをドキュメント ルートに配置してすべてのユーザーに公開することは絶対に避けてください。

インクルードまたは必須のファイルは、PHP が実行されているシステム上のユーザーがアクセスできる限り、システム上のどこにでも置くことができ、これらのファイルに任意のサフィックスを付けることも、サフィックスを使用しないこともできます。

Web サイト内の要素を指定するために include() と require() を使用するのは一般的な現象であり、Web サイトをアップグレードする必要がある場合に非常に便利です。

4. PHP とファイルシステムのメンテナンス

PHP には、ファイルを開くだけでなく、ディレクトリの内容を表示したり、ファイルを移動したりする機能もたくさんあります。 PHP インターネットベースのファイルエクスプローラーを開発します。

ファイルパスの説明: Windowsではパスに/と記号を使用できますが、他のオペレーティングシステムでは/記号のみ使用できます。一貫性を保つために、/ 表記を一律に使用します。

次のスクリプト例はディレクトリリストを表示することができ、コードにはコメントが含まれています:

$dir_name = "/home/me/";
/* 指定されたディレクトリを開いた結果を値とするハンドルを作成します */
$dir = opendir($dir_name); /* テキストブロックを作成します ,リスト要素 (ファイル名) を配置するために使用されます */
$file_list = "

    ";
    /* ファイル名が "." または " でない場合は、while ステートメントを使用して、開いたディレクトリ内のすべての要素を読み取ります。 ."と入力し、リストに名前を表示します*/
    while ($file_name = readdir($dir)) {
    if (($file_name != ".") && ($file_name != "..") ) {
    $file_list .= "
  • $file_name";
    }
    }
    $file_list .= "
";/*開いているディレクトリを閉じて、PHP モジュールを終了します*/
closedir($dir) ?>
TITLE>ディレクトリリスト
ファイル: < ? echo "$dir_name"; ? echo "$file_list"; > ;


ディレクトリのリストができました。ファイル (これについては後ほど説明します) またはディレクトリの内容を読み取るには、PHP が実行されているシステム上のユーザーが少なくともそのファイルに対する読み取り権限を持っている必要があることに注意してください。
以下はファイルをコピーする方法の例です:

$original = "/home/me/mydatabasedump";
$copied = "/archive/mydatabasedumo_1010"
/* の場合は、copy() 関数を使用します。コピーが完了していない場合、メッセージが表示されます エラーメッセージ*/
@copy($original, $copied) or die("Couldn't copy file."); この例は、ファイルバックアップシステム。このスクリプトを実行すると、ファイルが別の場所にコピーされて保存されます。デーモンをわずかに変更して、ユーザーの介入なしで指定した時刻に実行できるようにします。

システムに Lynx がインストールされていると仮定すると、このファイルにアクセスするためのデーモン エントリを作成できます。このファイルにアクセスすると、このスクリプトが実行され、ファイルのコピーが作成されます。次の例では、このスクリプトを 5 時に実行します。 Lynx:
0 5 * * * [username] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1
CGI バージョンの PHP を実行している場合は、 Lynx の部分をスキップして直接進むことができます バイナリ ファイルを呼び出します:
0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1

5 番目、豊富な配列関数

30 の新しい配列関数が PHP 4.0 に追加されました。 グループ番号に関連する関数の中には、配列に要素が含まれているかどうかを判断したり、配列内の要素をカウントしたり、配列内の要素を追加または削除したり、配列内の要素を並べ替えたりすることができるものがあります。 。

大きな配列があり、それに特定の要素が含まれているかどうかを確認する必要がある場合は、in_array() を使用できます。次の例では、$namesArray という名前の配列で Albert を検索していますが、そのような要素は $namesArray 配列に存在しないため、「この配列では見つかりません」と表示されます。

< $namesArray = array("ジョー", "ジェーン", "ボブ", "メアリー", "ポール", "エディ", "ジョン"); $ LookingFor = "アルバート"; in_array($lookFor, $namesArray)) {
echo "見つかりました!";
} else {
echo "この配列には見つかりません!"
?>これを Mary に変更すると、Mary は $namesArray 配列の要素であるため、「見つかりました!」というメッセージが表示されます。

配列内の要素の数を数えたい場合は、単に count() 関数を使用します:

$count = count($namesArray); ?>

返される $count の値は 7 です。

配列の先頭または末尾に要素を追加できます。また、array_merge() を使用して、2 つ以上の配列の要素を含む新しい配列を作成することもできます。マージすると、要素の順序は指定された順序になります。 order. 元の配列がソートされており、マージ後に並べ替える必要がある場合。

まず array_push() を使って配列の最後に要素を追加します:

$fruitArray = array("apple", "orange", "banana", "kiwi ", "pear");
/*配列に要素を追加*/
array_push($fruitArray, "grape", "pineapple", "Tomato");
/*各要素とそのシリアル番号を表示します*/
while (list($key,$value) = each($fruitArray)) {
Echo "$key : $value
";
?> 上記のプログラムを実行すると、次の結果が得られます。
0 : リンゴ
1 : オレンジ
2 : バナナ
3: キウイ
4: 梨
5: ブドウ
6: パイナップル
7: トマト
配列の先頭に要素を追加する必要がある場合、コードは上記のコードと似ていますが、唯一の違いは、代わりに array_unshift() を使用する必要があります。

/* 配列を作成します*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear"); /* 配列に要素を追加します*/
array_unshift($fruitArray, "grape", "pineapple", "Tomato");
/* 各要素とそのシリアル番号を表示*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value
";
}
?> 上記のプログラムを実行すると、次の結果が得られます:

0: ブドウ
1: パイナップル
2: トマト
3: リンゴ
4:オレンジ
5: バナナ
6: キウイ
7: 洋梨
array_merge() 関数は、2 つ以上の配列を 1 つの配列にマージできます。

$fruitArray = array("apple", "orange", "banana", "kiwi", "pear"); /*/2 番目の配列を作成します */
$vegArray = array("ニンジン", "インゲン", "アスパラガス", "アーティチョーク", "トウモロコシ");
/*これら 2 つの配列を 1 つの配列にマージします*/
$goodfoodArray = array_merge( $fruitArray, $ vegArray);
/* 各要素とそのシリアル番号を表示します*/
while (list($key,$value) = each($goodfoodArray)) {
echo "$key : $value
" ; ?>

上記のスクリプトを実行すると以下の結果が得られます:

0: リンゴ
1: オレンジ
2: バナナ
3: キウイ
4: 梨
5: ニンジン
6: インゲン
7: アスパラガス
8: アーティチョーク
9: トウモロコシ

要素を追加して配列を結合する方法をマスターしたところで、配列から要素を削除する方法を見てみましょう。 array_pop() 関数を使用すると配列の末尾から要素を削除でき、array_shift() 関数を使用すると配列の先頭から要素を削除できます。 array_pop() または array_shift() が配列から要素を削除しても、その要素を変数として使用できます。

配列の末尾から要素を削除するにはarray_pop()を使用します:
pear");
/* 配列の末尾から要素を削除*/
$popped = array_pop($fruitArray);
/* 表示削除された配列の内容と削除した要素*/
while (list($key, $value) = each($fruitArray)) {
echo "$key : $value
"
}
echo ";
そして最後に、$popped: $popped";
?>

上記のスクリプトを実行すると、次の結果が得られます:
0: リンゴ
1: オレンジ
2: バナナ
3: キウイ
そして最後に, $popped: pear

配列の末尾から要素を削除する別の例について説明します。 :

/* 配列を作成します*/
$fruitArray = array("apple", "orange", "banana", "kiwi", "pear");
/* 配列の先頭から1要素を削除*/
$shifted = array_shift($fruitArray)
/* 削除した配列の内容と要素を表示あなたは削除しました*/
while (list($key,$value) = each($fruitArray)) {
echo "$key : $value
"
}
echo "
そして最後に、$ SHIFT: $shifted";
?>

上記のスクリプトを実行すると、次のように表示されます:
0 : orange
1 : Banana
2 : kiwi
3 : pear
そして最後に $shifted: apple

配列内の要素を並べ替えるための関数もいくつかありますが、ここでは基本的な関数のみを簡単に説明します。 並べ替え関数、並べ替えプロセスを説明します:

$fruitArray = array("apple ", "orange", "banana", "kiwi", "pear");
/*配列をソート*/
sort($fruitArray);
/*各要素とそのシリアル番号を表示*/
while (list ($key,$value) = each($fruitArray)) {
echo "$key: $value
";
?> 上記のスクリプトを実行すると、次のような表示結果が得られます。 : リンゴ
1 : バナナ
  2 : キウイ
3 : オレンジ
4 : 梨



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。