如果你不想(或由于某种原因不允许)使用库,你可以使用标准的php printf
/ sprintf
函数。
它们的问题是,如果您的值具有可变且不受限制的宽度,那么您将必须决定长整型值是否会被截断或中断表的布局。
第一种情况:
// fixed width
$mask = "|%5.5s |%-30.30s | x |\n";
printf($mask, 'Num', 'Title');
printf($mask, '1', 'A value that fits the cell');
printf($mask, '2', 'A too long value the end of which will be cut off');
输出为
| Num |Title | x |
| 1 |A value that fits the cell | x |
| 2 |A too long value the end of wh | x |
第二种情况:
// only min-width of cells is set
$mask = "|%5s |%-30s | x |\n";
printf($mask, 'Num', 'Title');
printf($mask, '1', 'A value that fits the cell');
printf($mask, '2', 'A too long value that will brake the table');
在这里,我们得到
| Num |Title | x |
| 1 |A value that fits the cell | x |
| 2 |A too long value that will brake the table | x |
如果这两者都不能满足您的需求,并且您确实需要一个具有流动宽度列的表,那么您必须计算每列中值的最大宽度。但这正是工作原理。PEAR::Console_Table