PHP sprintf 函式

PHP sprintf 函式可以將格式化的字符元素,插入字串變數中的特定位置,執行插入的處理方式與 printf 函式一樣,但 sprintf 函式僅執行插入工作,不負責輸出於網頁的動作,也就是說 sprintf 函式處理完後,僅會返回一個新的字串變數,以便接著做後續的其他處理,若要輸出至網頁,則必須透過像是 echoprint 來完成。如果沒有要做其他處理,只要將轉換完成的字串變數直接輸出,可以使用 printf 函式

PHP sprintf 基本語法

string sprintf ( string $format , $args1 , $args2 , $args3 , $arg4 , $arg5 ... )


sprintf 函式小括號內的第一個參數 $format 是原始格式化轉換字串,後方接著一連串的 $args 是要插入 $format 字串的字符參數,每個字符參數將依序插入到原始格式化轉換字串($format)中的百分號(%)符號處,並完成格式化,例如 $args1 插入到 $format 的第 1 個 % 位置、$args2 插入到第 2 個 % 位置、$args3 插入到第 3 個 % 位置 ... 以此類推,範例中有詳細的參考。

原始字串中 $format 參數通常寫成 % 加上隔式化代號,可能的形式如下
%%返回百分比符號,不需要任何參數
%b二進位的整數參數
%c參數被視為一個 ASCII 值字符整數
%d十進位的整數參數
%e參數會被視為科學記號表示法,例如 1.2e+2
%E與 %e 類似,但呈現為英文字母大寫,例如 1.2E+2
%u參數被做為一個無符號十進位整數
%f浮點數(locale aware)
%F浮點數(non-locale aware,PHP 4.3.10 與 PHP 5.0.3 新增)
%g比 %e、%f 短。
%G比 %E、%F 短。
%o八進位制整數參數
%s字串
%x十六進位數(小寫字母)
%X十六進位數(大寫字母)

此表也可以對照使用於 PHP printf 函式的 $format 參數。

PHP sprintf 參考範例一、帶入字串、數字與浮點數轉換
<?php
$string = 'to';
$number = '5';
$format = 'Welcome %s Wibibi.%f is float of %u.';
echo sprintf($format,$string,$number,$number);
?>
以上範例輸出結果
Welcome to Wibibi.5.000000 is float of 5.
範例中我們使用了三個參數,讓 sprintf 嘗試轉換,第一個參數 $string 的值為字串"to",很輕鬆的帶入至 $format 變數第一個 % 符號的位置,第二個參數 $number 原本的值為數字 5,在 $format 的第二個 % 符號,格式化為浮點數(%f),所以輸出結果有小數點,且達到小數點後五位,因為我們沒有特別設定小數點的位數,下一個範例將控制小數點的位數,第三個參數格式化為十進位整數,所以直接是 5。

PHP sprintf 參考範例二、控制小數點的位數
<?php
$number = '5';
$format = "%1\$.3f is float of %u.";
echo sprintf($format,$number,$number);
?>
範例輸出結果
5.000 is float of 5.
sprintf 的 $format 參數中,第一個格式化部分寫成「%1\$.3f 」所代表的意思即為浮點數處理至小數點後第三位,數字代表小數位數,這裡虛注意的是 $format 等號右邊必須使用雙引號("")打包內容,若使用單引號('')會讓 sprintf 函式無法成功帶入變數並格式化。

相關語法研究
© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012