PHP sprintf()格式化用法詳解

frans發表於2020-12-22

php sprintf函式是一個非常強大的函式,本篇文章特別記錄一下php中的sprintf函式格式化字串的相關用法。

定義和用法
sprintf() 函式把格式化的字串寫入一個變數中。

語法
sprintf(format,arg1,arg2,arg++)

引數 描述
format 必需。轉換格式。
arg1 必需。規定插到 format 字串中第一個 % 符號處的引數。
arg2 可選。規定插到 format 字串中第二個 % 符號處的引數。
arg++ 可選。規定插到 format 字串中第三、四等等 % 符號處的引數。

說明
引數 format 是轉換的格式,以百分比符號 (“%”) 開始到轉換字元結束。下面的可能的 format 值:
%% - 返回百分比符號
%b - 二進位制數
%c - 依照 ASCII 值的字元
%d - 帶符號十進位制數
%e - 可續計數法(比如 1.5e+3)
%u - 無符號十進位制數
%f - 浮點數(本地設定)
%F - 浮點數(非本地設定)
%o - 八進位制數
%s - 字串
%x - 十六進位制數(小寫字母)
%X - 十六進位制數(大寫字母)

arg1, arg2, ++ 等引數將插入到主字串中的百分號 (%) 符號處。該函式是逐步執行的。在第一個 % 符號中,插入 arg1,在第二個 % 符號處,插入 arg2,依此類推。

提示和註釋
註釋:如果 % 符號多於 arg 引數,則您必須使用佔位符。佔位符插到 % 符號後面,由數字和 “$“ 組成,如:n$。請參見例子2。
提示: 相關函式: fprintf()、 printf()、 vfprintf()、 vprintf() 以及 vsprintf()。

例子 1

echo sprintf("hello %s. Day number %d", 'hello', 123);
//輸出:Hello world. Day number 123

例子 2

<?php
$number = 124 / 3;
$txt = sprintf("標準結果:%f,精確二位:%.2f", $number, $number);
//或者:$txt = sprintf("標準結果:%1\$f,精確二位:%1\$.2f", $number);
echo $txt;
//輸出:標準結果:41.333333,精確二位:41.33

例子 3

//php格式化數字:位數不足前面加0補足
$var = sprintf("%04d", 2); //生成4位數,不足前面補0
echo $var;
//輸出:0002
本作品採用《CC 協議》,轉載必須註明作者和本文連結