-1

ヘブライ語で str_pad() をゼロで実行しようとすると、必要な量のゼロが追加されません。

例えば:

$word='שלום';
$str=str_pad($word,10,' ',STR_PAD_RIGHT);

結果:

שלום00
4

1 に答える 1

4

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); 
}
于 2013-07-25T07:06:59.290 に答える