文字列の中の不要な全角/半角スペース(空白)を削除したい。

trim()という指定文字を削除する関数があるが、
これでは全角の空白を削除することができません。

そこで、以下の二つの方法がありませす。

1. 全角スペースを半角にしてからtrim()を使う
2. 全角を扱える置換関数(preg_replace())を使う

以下に例を示します。

a)
以下だと全角スペースが消えない

$trim_result = trim($string);
$trim_result = trim($trim_result, " ");

b)
以下だと全角スペースを含めて消える。
このままだと、文字列の前後以外の途中の空白も消える

$replace_result = preg_replace('/[  ]/', '', $string);

c)

$replace_result = preg_replace('/^[  ]+|[  ]+$/', '', $string);

b)
以下だと全角スペースが半角スペースに直された後で、
trimにより半角が削除されるのでうまくいく。

$kana_result = mb_convert_kana($string, "s");
$kana_result = trim($kana_result);

場合によっては、mb_convert_kana()の第三引数に文字コードを
指定しないとうまくいかない場合があります。

$kana_result = mb_convert_kana($string, "s", 'UTF-8');

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>