php

时间:2015-12-03 16:04:57

标签: php string

我想生成特定的字符串。我需要为我使用此函数生成精确的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个字符,从字符串中丢弃最后几个字符。

2 个答案:

答案 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变体,我认为应该推荐用于计数。