こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、14年目エンジニアです。
この記事では、 PHPの定番関数であるstr_replace関数を使って郵便番号からハイフンを取り除くを
- サンプルプログラム
- 実行結果
- プログラム解説
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows11 |
---|---|
PHPのバージョン | 8.2.4 |
XAMPPのバージョン | 8.2.4 |
PHPを動かすためにXAMPPを使っています。
XAMPPのインストールは、下の記事をご参考ください。
phpプログラムは
C:\xampp\htdocs
配下に、【sample.php】というファイル名で格納しています。
サンプルプログラムの概要
郵便番号はハイフンありとなしがあります。
この記事のサンプルプログラムは、ハイフンありの郵便番号のみを対象として、ハイフンを削除します。
それ以外のフォーマットの文字列は、エラーメッセージを表示させます。
判定に使う文字列は
- ハイフンあり郵便番号
- ハイフンなし郵便番号
- 無関係な文字列
の3つの文字列に対して、判定させて結果を表示させます。
phpプログラムは
C:\xampp\htdocs
配下に、【sample.php】というファイル名で格納しています。
郵便番号からハイフンを取り除くサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<?php function replace_zipcode($zipcode) { if (preg_match('/^\d{3}-\d{4}$/', $zipcode)) { return str_replace('-', '', $zipcode); } return '無効な文字列です'; } print('■str_replace関数で郵便番号からハイフンを取り除くサンプルプログラム問題<br>'); print('・ハイフンあり郵便番号を判定した場合<br>'); $zipcode1 = '123-4567'; $result1 = replace_zipcode($zipcode1); print($zipcode1 . 'の実行結果:' . $result1 . '<br>'); print('・ハイフンなし郵便番号を判定した場合<br>'); $zipcode2 = '1234567'; $result2 = replace_zipcode($zipcode2); print($zipcode2 . 'の実行結果:' . $result2. '<br>'); print('・無関係な文字列を判定した場合<br>'); $zipcode3 = 'abc-defg'; $result3 = replace_zipcode($zipcode3); print($zipcode3 . 'の実行結果:' . $result3); ?> |
実行結果
XAMPPを起動して、【http://localhost/sample.php】のURLにアクセスします。
XAMPPでPHPの動かし方については、こちらの記事をご参考ください。
与えたのはハイフンありの郵便番号のみ取り除く処理が行われ、それ以外はエラーメッセージが表示されていることを確認できました。
プログラム解説
サンプルプログラムの解説を
- if文の条件の意味
- str_replace関数について
で解説していきます。
if文の条件の意味
与えられた文字列がハイフンありの郵便番号かどうかを判定しているのはここです。
1 |
if (preg_match('/^\d{3}-\d{4}$/', $zipcode)) { |
preg_match関数は、第一引数に指定された正規表現に第二引数に指定した文字列がマッチするかを行う関数です。
このサンプルプログラムで指定している第一引数
1 |
'/^\d{3}-\d{4}$/' |
の意味は、1から3文字は数値、4文字目は「-(ハイフン)」、5から7文字が数値である、という正規表現です。
つまりハイフンありの郵便番号かどうかのマッチングを行ってます。
この正規表現に合致する文字列のみ通過できるif文となってます。
str_replace関数について
str_replace関数は、対象の文字列を指定した値にすべて置換して返す関数です。
詳しくはこちらの記事をご参考ください。
str_replace関数を使って、「-(ハイフン)」を空に置換しています。
1 |
return str_replace('-', '', $zipcode); |
空に置換することで文字列から「-(ハイフン)」を取り除くことができています。
if文の条件によって、ハイフンありの郵便番号以外ここの処理に到達することはありません。
まとめ:郵便番号からハイフンを取り除いてみよう!
以上がPHPでstr_replace関数を使って郵便番号からハイフンを取り除くサンプルプログラムでした!
str_replace関数はこの記事の郵便番号の整形以外にも、さまざまな場面で活用できます。
ぜひ他の用途でも試してみてください!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント