str_pad函数用于字符串填充,支持右、左、居中三种方式。1. 右填充:str_pad("Hello", 10, "") → "Hello";2. 左填充:str_pad("42", 5, "0", STR_PAD_LEFT) → "00042";3. 居中填充:str_pad("Hi", 10, "-") → "----Hi----",奇数时多出字符放右侧,如str_pad("A", 6, "", STR_PAD_BOTH) → "A**";填充字符可自定义并重复使用,如str_pad("Test", 8, "01", STR_PAD_LEFT) → "0101Test";注意长度需大于原串,且中文需配合mb_strlen避免字节计算问题。

在PHP中,str_pad 函数用于将字符串填充到指定长度,支持左、右或两端(居中)补位。这个函数非常实用,比如格式化输出、对齐文本、生成固定长度的编码等场景。
str_pad 基本语法
str_pad(string $input, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string
参数说明:
- $input:原始字符串
- $length:填充后的总长度。如果小于原字符串长度,不进行任何操作
- $pad_string:用于填充的字符,默认是空格
-
$pad_type:填充方式,可选值:
- STR_PAD_RIGHT:右侧填充(默认)
- STR_PAD_LEFT:左侧填充
- STR_PAD_BOTH:两侧同时填充,尽量平均分配
右侧填充(补右边)
将字符添加到字符串右边,使其达到指定长度。
立即学习“PHP免费学习笔记(深入)”;
$input = "Hello";echo str_pad($input, 10, "*"); // 输出:Hello*****
左侧填充(补左边)
在字符串前面添加字符,常用于数字编号对齐。
$input = "42";echo str_pad($input, 5, "0", STR_PAD_LEFT); // 输出:00042
居中填充(左右补位)
使用 STR_PAD_BOTH 可实现居中效果,系统会尽量平均地在左右两边填充。
$input = "Hi";echo str_pad($input, 10, "-"); // 输出:----Hi----
注意:如果总填充字符数为奇数,多出的一个会放在右边。
echo str_pad("A", 6, "*", STR_PAD_BOTH); // 输出:***A** (左3右2)自定义填充字符与长度控制技巧
填充字符可以是任意字符串,但最终填充长度仍以总字符数为准,不会截断原内容。
// 使用多个字符填充echo str_pad("Test", 8, "01", STR_PAD_LEFT); // 输出:0101Test(重复"01"直到填满)
如果填充字符长度不能整除所需填充量,会自动截取部分使用。
控制建议:
- 确保目标长度大于原字符串长度,否则无效果
- 居中时尽量使用对称字符(如空格、*、-)更美观
- 处理中文字符时需谨慎,str_pad 按字节计算,可能导致不对齐(建议配合 mb_strlen 使用)
基本上就这些。str_pad 看似简单,但在格式化输出中很实用,掌握三种填充方式能灵活应对各种对齐需求。











