PHP printf() 関数

形式化された文字列の出力:

<?php
$number = 9;
$str = "北京";
printf("%sに%s百万の自転車があります。",$str,$number);
?>

実行例

定義と使用法

printf() 関数は形式化された文字列を出力します。

arg1arg2arg++ パラメータがメインの文字列の % 符号に挿入されます。この関数は逐次実行されます。最初の % 符号に arg1、2番目の % 符号に arg2、次のように続けます。

注釈:もし % 符号が多い場合 arg パラメータがあれば、占位符を使用する必要があります。占位符は % 符号の後に挿入され、数字と "\$" で構成されます。例2を参照してください。

ヒント:関連する関数:sprintf()、vprintf()、vsprintf()、fprintf()、vfprintf()

文法

printf(format,arg1,arg2,arg++)
パラメータ 説明
format

必須。文字列とその中の変数のフォーマット方法を定義します。

可能なフォーマット値:

  • %% - 百分号 % を返します
  • %b - 2進数
  • %c - ASCII値に対応する文字
  • %d - 符号を含む10進数(負数、0、正数)
  • %e - 小文字の科学記数法を使用(例:1.2e+2)
  • %E - 大文字の科学記数法を使用(例:1.2E+2)
  • ソ号を含まない10進数(0以上)
  • %f - ローカル設定の浮動小数点数
  • %F - ローカル設定非の浮動小数点数
  • %g - 短い%X と%f
  • %G - 短い%X と%f
  • %o - 8進数
  • %s - 文字列
  • %x - 小文字の16進数
  • %X - 大文字の16進数

追加のフォーマット値。% とアルファベットの間に配置する必要があります(例:%.2f):

  • + (数字の前後に + または - を付けて正負を定義します。デフォルトでは、負数のみがマークされます。)
  • (デフォルトでスペースを使用するとしています。幅指定器と一緒に使用する必要があります。)
  • - (変数値を左詰め)
  • [0-9] (変数値の最小幅を指定)
  • .[0-9] (小数桁数または最大文字列長を指定)

注釈:上記のフォーマット値を複数使用する場合、その順序を乱さないように使用する必要があります。

arg1 必須。指定する format 文字列の中の第一の % 符号の場所の引数。
arg2 必須。指定する format 文字列の中の第二の % 符号の場所の引数。
arg++ オプション。指定する format 文字列の中の第三、四など % 符号の場所の引数。

技術的詳細

返り値: 出力された文字列の長さを返します。
PHP バージョン: 4+

さらに多くの例

例 1

フォーマット値 %f の使用:

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

実行例

例 2

占位符の使用:

<?php
$number = 123;
printf("有两位小数:%1\$.2f<br>没有小数:%1\$u",$number);
?>

実行例

例 3

すべての可能なフォーマット値のデモンストレーション:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 文字 50 は 2
// 注釈:フォーマット値 "%%" は百分号を返します
printf("%%b = %b <br>",$num1); // 二進数
printf("%%c = %c <br>",$char); // ASCII 文字
printf("%%d = %d <br>",$num1); // 帯符号の十進数
printf("%%d = %d <br>",$num2); // 帯符号の十進数
printf("%%e = %e <br>",$num1); // 科学記数法(小文字)
printf("%%E = %E <br>",$num1); // 科学記数法(大文字)
printf("%鑾u <br>",$num1); // 不带符号の十進数(正)
printf("%鑾u <br>",$num2); // 不带符号の十進数(負)
printf("%%f = %f <br>",$num1); // 浮点数(视本地設定)
printf("%%F = %F <br>",$num1); // 浮点数(不视本地设置)
printf("%%g = %g <br>",$num1); // 短于 %e 和 %f
printf("%%G = %G <br>", $num1); // %E と %f より短い
printf("%%o = %o <br>", $num1); // 8進数
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);
printf("[%-8s]<br>", $str1);
printf("[%08s]<br>", $str1);
printf("[%'*8s]<br>", $str1);
printf("[%8.8s]<br>", $str2);
?>

実行例