ハイフンを含まない7桁の数字の郵便番号を “000-0000” と “3桁-4桁”の合計8文字のフォーマットにする方法を書いていきます。
substrで指定範囲の文字列を取得しハイフンありにする
//郵便番号
$zipcode = "1898501";
//最初から3文字分を取得する
$zip1 = substr($zipcode ,0,3);
//4文字目から最後まで取得する
$zip2 = substr($zipcode ,3);
//ハイフンで結合する
$zipcode = $zip1 . "-" . $zip2;
str_replaceでハイフンを取り除く(置換)
//郵便番号(ハイフンあり)
$zipcode = "189-8501";
//ハイフンを取り除く(空文字に置換)
$zipcode = str_replace("-", "", $zipcode);
ハイフンを取り除いた後、再びハイフンありにする
入力フォームからPOSTされてくる値など、ハイフン有無を判別せずに処理する場合など、登録や表示直前にハイフンありのフォーマットに統一する場合以下のようにハイフンを取り除いた処理を行った上でハイフンありのフォーマットに変換します。
//ハイフンを取り除く(空文字に置換)
$zipcode = str_replace("-", "", $zipcode);
//ハイフンありのフォーマットに変換
$zipcode = substr($zipcode ,0,3) . "-" . substr($zipcode ,3);
コメント