LoginSignup
1
1

More than 5 years have passed since last update.

【PHP】空白を削除しつつ全角文字を半角文字に変換する

Last updated at Posted at 2018-06-12

空白を削除しつつ全角文字を半角に変換したい

  • 空白スペースを削除
  • 全角文字を半角文字へ変換

の順番で処理を行う

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を使用する方法

しかしながら公式のドキュメントでは以下のように書かれている

PHP: str_replace - Manual

(正規表現のような) 技巧的な置換ルールを必要としない場合、 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ああああ"

参考

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1