Str_pad无法正常工作

Eri*_*and 5 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";
Run Code Online (Sandbox Code Playgroud)

我试图将此字符串解析为服务器,并且$ 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";
Run Code Online (Sandbox Code Playgroud)

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

我在这里错过了什么?

Leg*_*nar 16

在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
Run Code Online (Sandbox Code Playgroud)

这将是100%的工作.