来自vsprintf的奇怪输出

时间:2015-12-04 16:23:41

标签: php printf

我正在尝试使用硬编码字符串构建数据文件...

所以我使用的是这种格式:

Format: %a1s%06c%a20s%a30s%a30s%a30s%a30s%a7s%a13s%a20s%a8s%a1s%a1s%a1s%a30s%a14s%a1s%a2s%a39s%a8s%a30s%a2s%a13s%a5s%a7s%a1s%a8s%03c
Values:     "A",    "16",   "",     "",     "Ola Nordmann",     "Slottsgate 1",     "",     "1012",     "",     "",     "",     "",     "",     "P",    "",     "",     "I",    "",     "",     "",     "",     "",     "",     "",     "",     "",     "",     ""

Output: "1s20s30s30s30s30s7s13s20s8s1s1s1s30s14s1s2s39s8s30s2s13s5s7s1s8s"

我的代码:

    $aRecord = vsprintf($format, $values);
    return ['a-record' => $aRecord, 'values' => $values, 'format' => $format];

可能只是因为它非常晚和周五下午,希望你们中的一些人能解决我的错误......谢谢! :)

编辑:

预期产出:

A000016                                                  Ola Nordmann            Slottsgate 1                                                1012

1 个答案:

答案 0 :(得分:0)

所以解决方案非常简单:P

对于左对齐文字,我们需要使用-代替a

printf("% -20s", "Richard");

希望这有助于某人:)