Str_pad无法正常工作

时间:2013-10-23 09:23:59

标签: php

    **PHP**

    $datearr = explode("/", $cutOff);
    $month = $datearr[0];
    $day = $datearr[1];
    $year = $datearr[2];
    $mainten = "MAINTENANCE";
    $pad=' ';
    $maint = str_pad($mainten, 20, $pad);
    $string = $cduid . $maint . $inarea . $year . $month . $day . "\n";

我正在尝试将此字符串解析为服务器,并且$ maint必须用右边的空格填充。我也试过.....

    $datearr = explode("/", $cutOff);
    $month = $datearr[0];
    $day = $datearr[1];
    $year = $datearr[2];
    $mainten = "MAINTENANCE";
    $maint = str_pad($mainten, 20);
    $string = $cduid . $maint . $inarea . $year . $month . $day . "\n";

当我回显$ string $ maint时,右边只有1个空格。 如果我替换$ pad =''; with $ pad ='。';;我得到了正确的结果,但我需要它是空格。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:15)

在HTML中,您只能显示一个空格,但通常在源中有空格数,如您所愿。

&nbps;不适用于str_pad,因为它有6个字符(在HTML中只有1个字符),但对于str_pad,它将失败。

只有一种方法,如何做,你必须填充一些字符(即。~),然后用 

替换它
$maint = str_replace('~', ' ', str_pad($mainten, 20, '~')); // just use some character you know isn't in your string

这将100%有效。

答案 1 :(得分:1)

  

当我回显$ string $ maint时,右边只有1个空格。

问题是,如果您在HTML代码中回显字符串,它将不会显示所有空格。如果您查看该页面的来源,则可以看到添加的所有空格。