我正在尝试做一些应该很容易但有问题的事情。
我想要做的就是从MySQL表生成报告,并将其作为普通的.txt文件。我需要文件固定宽度,所以一切都排成一行,看起来不错。我将使用courier字体,它只是一个准系统表,但我如何实际排列所有内容,固定宽度文件应该如何?
我是否必须构建一个用空格填充的值数组,以使它们具有相同的宽度?或者是否有一个PHP函数开始在特定位置写作?
再次感谢您的帮助!
答案 0 :(得分:10)
查看str_pad
方法。 E.g。
str_pad('Somevalue', 20, " ", STR_PAD_LEFT);
用空格填充字符串“Somevalue”,给出
" Somevalue"
尽管
str_pad('Somevalue', 20);
用空格填充字符串,给出:
"Somevalue "
答案 1 :(得分:1)
在substr的输入值大于PAD的情况下,我仍然会添加一个str_pad,然后返回原始值,打破其固定宽度。
示例:
var_dump(str_pad('Some string with more than 20 input characters', 20));
string (46) "Some string with more than 20 input characters"
使用substr:
var_dump(substr(str_pad('Some string with more than 20 input characters', 20), 0, 20));
string (20) "Some string with mor"
从右到左工作:
var_dump(str_pad('Some string with more than 20 input characters', 20, "", STR_PAD_LEFT));
string (46) "Some string with more than 20 input characters"
var_dump(substr(str_pad('Some string with more than 20 input characters', 20, "", STR_PAD_LEFT), -10));
string (10) "characters"