ヘブライ語で str_pad() をゼロで実行しようとすると、必要な量のゼロが追加されません。
例えば:
$word='שלום';
$str=str_pad($word,10,' ',STR_PAD_RIGHT);
結果:
שלום00
ヘブライ語で str_pad() をゼロで実行しようとすると、必要な量のゼロが追加されません。
例えば:
$word='שלום';
$str=str_pad($word,10,' ',STR_PAD_RIGHT);
結果:
שלום00
str_pad(...)
マルチバイトセーフではありません。これは、4 つの 2 バイト文字を使用しているため、その関数は文字列の長さが 8 であることを認識し、パディングには 2 つのゼロのみが使用されることを意味します。
PHPマニュアル内で、このユーザー提供の関数を見つけました。それはテストされておらず、自己責任で使用しますが、それがあなたが探しているもののようです。
function mb_str_pad ($input, $pad_length, $pad_string, $pad_style, $encoding="UTF-8") {
return str_pad($input,
strlen($input)-mb_strlen($input,$encoding)+$pad_length,
$pad_string, $pad_style);
}