如果您不希望(或由于某种原因不允许)使用库,您可以使用标准的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的确切运作方式。