-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 回答