rikuです。
本日は、また!!!
新たな仲間が増えました!
事務員のishiiさんです。
歓迎会もできて、これからよろしくお願いしますです!
今日のお題はタイトルにもあるように
“正規表現”です。
正規表現とは文字列の検索や書式設定などのために使用されるパターンマッチングの方法です。
これによって、特定のフォーマットにあたる部分を対象に検索することができます。
実務の中での例を出すと、
htmlの特定のタグの要素の中身を、取得して表示したいという時が
普段の生活で日常的にあると思います。
例えば、プロフィール情報が記載されたhtmlファイルが複数あるフォルダ(food)があるとします。
その中から、好きな食べ物を人ごとに取得して、一覧を作りたい!なんてことよくありますよね、、、?w
そんな時に使えるのが、正規表現です。
※あくまで、htmlファイルをないから取得する場合です。
<div>
<p class="title">好きな食べ物</p>
<ul>
<li>1番</li>
<li>ラーメン</li>
<li>2番</li>
<li>カレー</li>
<li>3番</li>
<li>ほうれん草のおひたし</li>
</ul>
</div>
上記のようなリストが、htmlファイル内にあるとします。
これをphpを使って、1つのテンプレートファイルを使って人数分ループ処理をかけるとします。
食べ物の場所を変数にします。
<?php //ループ処理をかく(){?>
<div> <p class="title">好きな食べ物</p> <ul> <li>1番</li> <li><?php $first_food;?></li> <li>2番</li> <li><?php $second_food;?></li> <li>3番</li> <li><?php $third_food;?></li> </ul> </div> <?php }?>
このようにすると、ユーザーファイルでは変数に代入する値を入力したら良いですね!
このようにしたときに、再起表現の出番です。
これの結果を出力するには、まず
htmlファイルにinputタグなどで、情報を持たせてあげます。
<input type="hidden" name="first_food" value="ラーメン" >
<input type="hidden" name="second_food" value="カレー" >
<input type="hidden" name="third_food" value="ほうれん草のおひたし" >
foodファイル以下のhtmlファイルを読み込みます。
太文字の部分が正規表です。
下記でおこなっていることは、特定のinputタグに当てはまるフォーマット部分を検索し、
value部分を配列のkey=1に格納し、出力しています。
<?php if(preg_match('/<input type="hidden" name="first_food" value="(.*?)">/', $data, $results)){ if(!empty($results)){ $first_food = $results[1]; print $first_food; ?>
このように、序盤で言ったように
特定のフォーマットにあたる部分を対象に検索することができます。
これによって、一人ごとの一番好きなものを正規表現で検索できます。
あとは、これを一覧ページするように改良するだけです。
みなさんも、ぜひ使ってみてください。
僕は頭が痛くなりました。
WEB制作・ITに関するお悩みや
ご質問等お気軽にご相談ください