phpで文字列前後のスペースを除去する



phpで文字列前後のスペースを除去する場合のメモです。

「trim()」という関数がりますので半角のスペースはこれで削除できます。
全角のスペースがある場合はこれでは削除されません。

文字列の先頭、末尾にある半角・全角スペースを
正規表現を使用し削除する方法をメモします。

■ 先頭、末尾の半角・全角スペース削除
・先頭の半角・全角スペース削除
$str = preg_replace('/^[  ]+/u', '', $str);
“^[  ]“で行頭が半角スペース、または全角スペースで始まる文字に一致させます。
“+”で直前の文字の1回以上の繰り返しに一致させます。
上記で一致した値を空文字で置換します。

・末尾の半角・全角スペース削除
$str = preg_replace('/[  ]+$/u', '', $str);
“[  ]+”で半角スペース、または全角スペースの1回以上の繰り返しに一致させます。
“$”で末尾を示すので末尾が半角全角スペースの場合に一致します。
上記で一致した値を空文字で置換します。

上記の両方を行うことで先頭、末尾の半角・全角スペースが削除されます。
$str = preg_replace('/^[  ]+/u', '', $str);
$str = preg_replace('/[  ]+$/u', '', $str);

■ 上記を関数にした場合
function space_trim ($str) {
  // 行頭の半角、全角スペースを、空文字に置き換える
  $str = preg_replace('/^[  ]+/u', '', $str);

  // 末尾の半角、全角スペースを、空文字に置き換える
  $str = preg_replace('/[  ]+$/u', '', $str);

  return $str;
}

記事id:736 / 1693PV

関連記事