3 番目のパラメーターを省略してsubstr()
、残りの文字列全体を取得できます。
substr('abcdefg', 2) // returns "cdefg"
で同じことはできませんmb_substr()
:
mb_substr('abcdefg', 2, null, 'UTF-8'); // returns empty string
奇妙で醜い解決策しか見つかりませんでした。
長さとして非常に大きな数値を設定する:
$a = mb_substr('abcdefg', 2, 9999999999, 'UTF-8');
数の計算:
$a = mb_substr('abcdefg', 2, mb_strlen('abcdefg', 'UTF-8') - 2, 'UTF-8');
次を使用して charset パラメータを省略します
mb_internal_encoding()
。$temp = mb_internal_encoding(); // prevent action at a distance
mb_internal_encoding('UTF-8');
$a = mb_substr('abcdefg', 2);
mb_internal_encoding($temp);
根本的な解決策はないのでしょうか?