6

谢谢您的支持。我有一个字符串,例如,32 个字符。首先,我想确定字符串最多有 32 个字符,如果字符只有 9 个,我想添加空格。

例子:

ABCDEFGHI ---> 9 个字符

我要这个:

ABCDEFGHI_ _ __ _ __ _ __ _ ---> 9 个字符 + 23 个空格自动添加。

谢谢

4

8 回答 8

7

您正在寻找的功能是str_pad.

http://php.net/manual/de/function.str-pad.php

$str = 'ABCDEFGHI';
$longstr = str_pad($str, 32);

默认填充字符串已经是空格。

由于您的最大长度应为 32,并且当字符串长度超过 32 个字符时不会采取任何操作,您可能希望使用thenstr_pad将其缩短:substr

http://de.php.net/manual/de/function.substr.php

$result = substr($longstr, 0, 32);

如果您的字符串正好是 32 个字符长,这也不会采取任何行动,因此您现在总是以 32 个字符的字符串结束$result

于 2012-07-19T09:03:57.343 回答
1

使用str_pad

str_pad('ABCDEFGHI', 32);
于 2012-07-19T09:03:59.060 回答
1

使用str_pad功能:

$result = str_pad($input, 32, " ");
于 2012-07-19T09:04:24.980 回答
1

你需要str_pad

$padded = str_pad($in,32,' ');

你可以有左或右填充,大量的选项,在这里查看它们

如果输入超过 32 个字符,则不采取任何措施,但这是一个易于实施的检查:

if (strlen($padded) > 32)
{
    throw new Exception($padded.' is too long');//or some other action
}
于 2012-07-19T09:04:46.593 回答
0

我不是 PHP 开发人员,但我认为就是您想要的。

于 2012-07-19T09:06:22.427 回答
0
for($i=0;$i<(32-strlen($your_string));$i++)
{ 
    $new_string.=$your_string.' '
}

希望对你有帮助

于 2012-07-19T09:12:41.650 回答
0

如果您想在函数内部进行更多自定义,您可以使用它

function fill($input, $length, $filler = ' ')
{
    $len = strlen($input);
    $diff = $length - $len;

    if($diff > 0)
    {
        for ($i = 0; $i < $diff; $i++)
        {
            $input = $input . $filler;
        }
    }
    return substr($input, 0, $length);
}
于 2018-03-18T13:25:12.333 回答
-3
$str = "ABCDEFGHI";
for ($i = 0; $i < 23; $i++) {
    $str .= "&nbsp;";
}

这就是你想要的?

当看到其他评论时,那将是最好的解决方案。

于 2012-07-19T09:04:11.097 回答