今天在学习一PHP开源程序,想要输出其系列变量进行查看时,因变量长度不一致,输出效果不理想
那PHP字符串怎么才能按指定长度输出呢?
查了下手册,大致有两种方法(str_pad、sprintf)可实现。
一、str_pad — 使用另一个字符串填充字符串为指定长度
手册中说明:
string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )该函数返回 input 被从左端、右端或者同时两端被填充到制定长度后的结果。如果可选的 pad_string 参数没有被指定,input 将被空格字符填充,否则它将被 pad_string 填充到指定长度。
示例代码:
$input = "Alien"; echo str_pad($input, 10); // 默认为STR_PAD_RIGHT 右侧添加, 输出 "Alien " echo str_pad($input, 10, "-=", STR_PAD_LEFT); // 左侧添加, 输出 "-=-=-Alien" echo str_pad($input, 10, "_", STR_PAD_BOTH); // 左右同时添加, 输出 "__Alien___" echo str_pad($input, 6 , "___"); // 输出 "Alien_"
二、sprintf – 返回一个格式化的字符串
手册中说明:
string sprintf ( string $format [, mixed $args [, mixed $... ]] )该函数将按指定的字符串格式返回字符串
其中,手册中第5个示例代码,演示了补全的效果
Example #5 Specifying padding character echo sprintf("%'.9d\n", 123); // 输出 ......123 echo sprintf("%'.09d\n", 123); // 输出 000000123 第8个示例代码,演示了不同格式实现左侧还是右侧补全的效果$s = 'monkey'; $t = 'many monkeys'; printf("[%s]\n", $s); // 标准输出 printf("[%10s]\n", $s); // 右侧空格补全 printf("[%-10s]\n", $s); // 左侧空格补全,即在数字前加-符号 printf("[%010s]\n", $s); // 左侧以0补全 printf("[%'#10s]\n", $s); // 以指定字符 '#'补全,注意:指定字符时需在字符前加'符号 printf("[%10.10s]\n", $t); // 左侧补全10位后,截取10位返回示例输出:
[monkey] [ monkey] [monkey ] [0000monkey] [####monkey] [many monke]
字符串的截取方式貌似有很多 还有strstr或者substr也是可以的吧
其实我讲的并不是字符串截取
好吧 我审题不清 哈哈