【PHP】使いこなせると便利な正規表現
IT事業部 プログラマーのTKです。
今回は正規表現について、ごく簡単ですが説明します。
正規表現は文字列の集合を一つの形式で表現する方法です。
この表現記法を使用する事で、一定の法則に従った文字列を大量の文書データから検索したり、
特定の文字列にマッチしたデータを一括で置換する等、様々な事に便利な使い方ができます。
具体的にはワープロやテキストエディタでキーワードを入力してデータの検索・置換を
する事が有りますが、その際に威力を発揮しているのがこの正規表現という手法なのです。
今回の例はUUID(Universally Unique Identifier)という技法を用いて、
ユニークな(重複がほぼ起こりえない)データから生成したファイル名を、
正規表現を使用してファイル名の検索を行い、条件を満たしたファイルのみを削除する、
というコードです。
UUIDについては以下のリンクも参照ください。
http://ja.wikipedia.org/wiki/UUID
UUIDは16進数、32byteの値を8byte,4byte,4byte,4byte,12byteずつハイフン区切りにした形式で
構成していますので、正規表現のような規則性を表現する手法にはうってつけです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<?php $aPath = "../Shohin_Kanri/"; deleteFile($aPath); //////////////////////////////////////////////////////// //ディレクトリ内のファイルを取得、ファイル名によって処理を分ける //////////////////////////////////////////////////////// function deleteFile($aPath) { $res_dir = opendir($aPath); //ディレクトリ・ハンドルをオープン //ディレクトリ内のファイル名を1つずつ取得 while( $file_name = readdir($res_dir) ) { //ファイルのループ if ($file_name != "." and $file_name != "..") { if (ereg("[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}.txt$", $file_name)) { $fullPath = $aPath . $file_name; unlink($fullPath); //ファイル削除 } } } //ファイルのループ closedir($res_dir); //ディレクトリ・ハンドルをクローズ } ?> |
このdeleteFileという関数を使う事で、UUIDから生成したファイル名を検索して、
削除するという一連の処理を実行する事ができます。