2012-07-19 84 views
3

感谢您的支持。 我有一个字符串,例如32个字符。对于第一,我想estabilish该字符串具有最多32个字符,我想添加空格字符,如果仅仅是,例如,9用空格填充字符串的其余部分

实施例:

ABCDEFGHI ---> 9个字符

我想这一点:

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

谢谢

+0

[格式化用PHP前导零的一些(可能的重复http://stackoverflow.com/questions/1699958/formatting-a-number-with -leading-in-php) – 2016-12-06 15:53:48

回答

5

你正在寻找的功能是str_pad

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

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

默认字符串垫已经是空白。

当你的最大长度应为32,当该字符串的长度超过32个字符,你可能要缩短下来使用substr然后str_pad不会采取任何行动:

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

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

如果您的字符串长度恰好为32个字符,则再次不会采取任何措施,因此现在您总是以$result结尾为32个字符的字符串。

+0

谢谢大家,这是完整的解决方案。 – user1499315 2012-07-19 09:26:32

1

使用str_pad

str_pad('ABCDEFGHI', 32); 
-2
$str = "ABCDEFGHI"; 
for ($i = 0; $i < 23; $i++) { 
    $str .= "&nbsp;"; 
} 

这是你想要的吗?

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

+1

这是非常糟糕的... – 2012-07-19 09:06:13

1

使用str_pad功能:

$result = str_pad($input, 32, " "); 
1

你需要str_pad

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

您可以有向左或向右填充,选项吨,检查他们全力以赴here

如果输入超过32个字符,不采取任何行动,但这是一个易于执行的检查:

if (strlen($padded) > 32) 
{ 
    throw new Exception($padded.' is too long');//or some other action 
} 
0

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

0
for($i=0;$i<(32-strlen($your_string));$i++) 
{ 
    $new_string.=$your_string.' ' 
} 

希望将有助于您

+0

非常好的方法,但是当有内置的方法,我们不应该尝试定制设计的逻辑..我希望你明白了我的观点.. – rummykhan 2015-11-15 01:48:23