空白を削除しつつ全角文字を半角に変換したい
- 空白スペースを削除
- 全角文字を半角文字へ変換
の順番で処理を行う
preg_replace
を使用する方法
以下のような文字列から空白スペースを取り除きかつすべて半角文字に変換する
コード
<?php
$code = ' ABC DEF G 1234 567 8 ABCD 12345 ';
$print = preg_replace('/( | )/', '', mb_convert_kana($code, 'a', 'UTF-8'));
var_dump($print);
↓出力結果
string(24) "ABCDEFG12345678ABCD12345"
処理の内容
-
mb_convert_kana
のオプション(以下 PHP: mb_convert_kana - Manual から引用)- a 「全角」英数字を「半角」に変換します
-
preg_replace
- 単純に半角スペースまたは全角スペースを空文字に変換しているだけ
str_replace
を使用する方法
しかしながら公式のドキュメントでは以下のように書かれている
(正規表現のような) 技巧的な置換ルールを必要としない場合、 preg_replace() の代わりにこの関数を常用するべきです。
のでstr_replace
を使用した方がいいようです。
コード
<?php
$code = ' ABC DEF G 1234 567 8 ABCD 12345 aaaああ ああ ';
$print = str_replace([' ',' '], '', mb_convert_kana($code, 'a', 'UTF-8'));
var_dump($print);
↓出力結果
string(39) "ABCDEFG12345678ABCD12345aaaああああ"