yano3nora
7/2/2017 - 9:59 AM

[php: trim()] trim note. #php

[php: trim()] trim note. #php

trim の概要

  • 文字列から空白文字(以下)を取り除く
    • 半角スペース
    • タブ
    • 改行
    • Nullバイト
    • 垂直タブ
  • マルチバイト非対応
  • trim
  • trim は両端
  • rtrim は右端
  • ltrim は左端
  • 第二引数(省略可能)を文字列で指定すると指定した文字を取り除く

TIPS

マルチバイト対応trim

// UTF8限定
function mb_trim_utf8($str, $charlist = " \t\n\r\0\x0B ") {
    $charlist = str_replace('..', '-', addcslashes($charlist, "^-:]\0\\/"));
    return preg_replace("/\\A[{$charlist}]++|[{$charlist}]++\\z/u", '', $str);
}

// 全エンコーディング
function mb_trim($str, $charlist = " \t\n\r\0\x0B ", $encoding = null) {
    $tmp = mb_regex_encoding();
    mb_regex_encoding(func_num_args() > 2 ? $encoding : mb_internal_encoding());
    $charlist = mb_ereg_replace('[\\[\\]^-]', '\\\\0', $charlist);
    $charlist = mb_ereg_replace('\\.{2}', '-', $charlist);
    $ret = mb_ereg_replace("\\A[{$charlist}]++|[{$charlist}]++\\z", '', $str);
    mb_regex_encoding($tmp);
    return $ret;
}

文字列末尾の任意の1文字を取り除く

UPDATE文のSET句とか、Jaywalkなテーブルカラムとか、カンマ区切りの文字列を作ってて、最後のカンマ一個だけ消したいときとか使える。

$sql = rtrim($sql, ',');