温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

格式化文本,PHP printf更专业

发布时间:2024-10-28 14:32:05 来源:亿速云 阅读:80 作者:小樊 栏目:编程语言

在 PHP 中,使用 sprintf 函数可以格式化字符串,它允许你定义输出字符串的格式。sprintf 函数的语法如下:

sprintf(format, [arg1 [, arg2 [, ...]]] )

其中 format 是格式化字符串,arg1, arg2, ... 是要插入到格式化字符串中的参数。

下面是一些使用 sprintf 的示例:

示例 1:基本格式化

$name = "John";
$age = 30;
$message = sprintf("My name is %s and I am %d years old.", $name, $age);
echo $message;  // 输出: My name is John and I am 30 years old.

示例 2:带多个参数的格式化

$name = "John";
$age = 30;
$score = 85;
$message = sprintf("My name is %s, I am %d years old, and I scored %d in the exam.", $name, $age, $score);
echo $message;  // 输出: My name is John, I am 30 years old, and I scored 85 in the exam.

示例 3:使用占位符和转换说明符

$name = "John";
$age = 30;
$message = sprintf("My name is %1$s, I am %2$d years old.", $name, $age);
echo $message;  // 输出: My name is John, I am 30 years old. 注意:数字的顺序与参数的顺序相反。

在上面的示例中,%1$s 表示第一个参数应该被转换为一个字符串,%2$d 表示第二个参数应该被转换为一个整数。数字表示参数的顺序。

示例 4:使用对齐和宽度

$data = [
    ['John', 30],
    ['Jane', 28],
    ['Doe', 35]
];
$max_name_length = max(strlen($name) for $name in array_column($data, 0));
$max_age_length = max(strlen($age) for $age in array_column($data, 1));

foreach ($data as $entry) {
    $message = sprintf("%-*s | %-*d", $max_name_length, $entry[0], $max_age_length, $entry[1]);
    echo $message . PHP_EOL;
}

输出:

John        | 30
Jane        | 28
Doe         | 35

注意:%-*s%-*d 中的 - 表示左对齐,* 表示使用最小宽度,sd 分别表示字符串和整数。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI