首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP printf() 函數完整指南:格式化輸出字串的語法、參數與實例詳解

     編輯:PHP 相關知識

printf() 是 PHP 內建的格式化輸出函數,能依指定格式將變數插入字串並直接輸出。本文系統整理其語法、格式化參數、常見旗標與多組實戰範例,幫助開發者快速掌握進階字串格式化技巧。

函數定義與用法

printf(string $format, mixed ...$args): int
  • format:格式字串,包含文字與以 % 開頭的格式化指令。
  • args:依序對應各 % 指令的參數。
  • 回傳值:輸出字串的長度。

若 % 數量多於參數,需使用位置佔位符(如 %1$)。相關函數:sprintf()、vprintf()、vsprintf()、fprintf()、vfprintf()。

常用格式化指令速查表

指令說明
%%輸出字面 % 符號
%b二進位數
%cASCII 字元
%d帶正負號十進位整數
%e / %E科學記號(小寫/大寫)
%u無正負號十進位整數
%f / %F浮點數(受/不受 locale 影響)
%g / %G%e/%f 或 %E/%f 較短者
%o八進位數
%s字串
%x / %X十六進位(小寫/大寫)

進階旗標(置於 % 與字母間)

  • +:強制顯示正負號
  • 'char:指定填充字元(預設空格)
  • -:左對齊
  • [0-9]:最小寬度
  • .[0-9]:小數位數或最大字串長度

多重旗標須依上述順序排列。

實戰範例

範例 1:基本浮點數輸出

<?php
$number = 123;
printf("%f", $number); // 123.000000
?>

範例 2:位置佔位符重複使用參數

<?php
$number = 123;
printf("兩位小數:%1\$.2f<br>無小數:%1\$u", $number);
// 兩位小數:123.00
// 無小數:123
?>

範例 3:所有格式化指令展示

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII '2'

printf("%%b = %b <br>", $num1);
printf("%%c = %c <br>", $char);
printf("%%d = %d <br>", $num1);
printf("%%d = %d <br>", $num2);
printf("%%e = %e <br>", $num1);
printf("%%E = %E <br>", $num1);
printf("%%u = %u <br>", $num1);
printf("%%u = %u <br>", $num2);
printf("%%f = %f <br>", $num1);
printf("%%F = %F <br>", $num1);
printf("%%g = %g <br>", $num1);
printf("%%G = %G <br>", $num1);
printf("%%o = %o <br>", $num1);
printf("%%s = %s <br>", $num1);
printf("%%x = %x <br>", $num1);
printf("%%X = %X <br>", $num1);
printf("%%+d = %+d <br>", $num1);
printf("%%+d = %+d <br>", $num2);
?>

範例 4:字串寬度、對齊與填充

<?php
$str1 = "Hello";
$str2 = "Hello world!";

printf("[%s]<br>", $str1);
printf("[%8s]<br>", $str1);     // 右對齊,寬度 8
printf("[%-8s]<br>", $str1);    // 左對齊
printf("[%08s]<br>", $str1);    // 0 填充
printf("[%'*8s]<br>", $str1);   // * 填充
printf("[%8.8s]<br>", $str2);   // 寬度 8,最大長度 8
?>

技術細節

  • PHP 版本:4+
  • 回傳值:輸出字串長度

掌握 printf() 能讓輸出格式更精準、代碼更簡潔,是處理報表、日誌、介面輸出的利器。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved