Php 组合宽度短跑
我有两个字符串,我想结合,并没有超过一定的宽度Php 组合宽度短跑,php,formatting,printf,Php,Formatting,Printf,我有两个字符串,我想结合,并没有超过一定的宽度 $string = sprintf("%4(%s %s)", $s1, $s2); //s1 s 请注意,合并的%s%s的宽度没有超过4 如何使用sprintf实现这一点 谢谢 我不知道如何使用sprintf,但你可以使用它 $string = substr("$s1 $s2",0,4); 这将返回相同的结果您可能需要为问题添加更多细节-如果字段长度超过3个字符(4-1个空格),您希望发生什么情况 但也许这就是你想要的: sprintf("%.
$string = sprintf("%4(%s %s)", $s1, $s2);
//s1 s
请注意,合并的%s%s的宽度没有超过4
如何使用sprintf实现这一点
谢谢 我不知道如何使用sprintf,但你可以使用它
$string = substr("$s1 $s2",0,4);
这将返回相同的结果您可能需要为问题添加更多细节-如果字段长度超过3个字符(4-1个空格),您希望发生什么情况 但也许这就是你想要的:
sprintf("%.4s", "$s1 $s2");
这将输出组合字符串“$s1$s2”
,并将其删减为4个字符。当然substr也会这样做,这在较长格式字符串的上下文中可能很有用
老实说,我以前没有意识到精度说明符(
后接数字)可以与%s
一起使用,现在我已经有了它们(就像你一样),但我认为printf中可能有一种方法。谢谢@tau,另一种方法可能是使用strlen计算填充宽度,这将为您提供更大的灵活性(例如,如果您希望左对齐$s1
和右对齐$s2
,但要共享尽可能多的空间)。