我想生成特定的字符串。我需要为我使用此函数生成精确的35个字符的字符串。
var_dump(str_pad("some text some text", 35, " ", STR_PAD_RIGHT));
所以,它给了我这个输出:
string(35) "some text some text "
这很好。它会为剩余的字符添加空格。
但是,对于这种情况,我想丢弃35以上的字符。
var_dump(str_pad("some text some text some text some text some text some text some text some text", 35, " ", STR_PAD_RIGHT));
当前输出:
string(79) "some text some text some text some text some text some text some text some text"
我在这里也需要35个字符,从字符串中丢弃最后几个字符。
答案 0 :(得分:1)
尝试在初始字符串上使用substr
将其缩减为35个字符,然后然后填充:
$data = "some text some text some text some text some text some text some text some text";
$data35 = str_pad(substr($data, 0, 35), 35, ' ', STR_PAD_RIGHT);
var_dump($data35);
/*
will output:
string(35) "some text some text some text some "
*/
答案 1 :(得分:-2)
if (mb_strlen($string,"UTF-8") > 34){
//there are 35 or more characters to the string
$string = mb_substr($string,0,35,"UTF-8");
}
else {
//there are 34 or less characters so carry on
$string = str_pad($string, 35, " ", STR_PAD_RIGHT));
}
使用mb_substr
删除超过35个字符限制的字符串长度。这是MultiByte变体,我认为应该推荐用于计数。