PHP sprintf() 関数
例
百分号(%)符号を引数として渡される変数に置き換えてください:
<?php $number = 2; $str = "Shanghai"; $txt = sprintf("There are 쥕lion cars in %s.", $number, $str); echo $txt; ?>
定義と使用法
sprintf()関数はフォーマットされた文字列を変数に書き込みます。
arg1、arg2、++ パラメータがメイン文字列の%符号の場所に挿入されます。この関数は順次実行されます。最初の%符号の場所に arg1、第二の%符号の場所に arg2、そのように順次。
注釈:%符号が多い場合、 arg パラメータが指定されない場合、占位符を使用する必要があります。占位符は%符号の後に数字と"$"で構成されます。例2を参照してください。
ヒント:関連関数:printf()、vprintf()、vsprintf()、fprintf()およびvfprintf()
文法
sprintf(format,arg1,arg2,arg++)
パラメータ | 説明 |
---|---|
format |
必須。文字列とその中の変数のフォーマット方法を指定する 可能なフォーマット値:
追加のフォーマット値。%とアルファベットの間に必ず配置する必要があります(例:%.2f):
注釈:上記のフォーマット値を使用する場合、それらは上記の順序で使用する必要があります。 |
arg1 | 必須。以下に挿入する format 文字列の第一の % 符号の場所のパラメータ。 |
arg2 | オプション。以下に挿入する format 文字列の第二の % 符号の場所のパラメータ。 |
arg++ | オプション。以下に挿入する format 文字列の第三、四の % 符号の場所のパラメータ。 |
技術的な詳細
返り値: | フォーマットされた文字列を返す。 |
PHPバージョン: | 4+ |
さらに例
例 1
フォーマット値 %fの使用:
<?php $number = 123; $txt = sprintf("%f",$number); echo $txt; ?>
例 2
プレースホルダーの使用:
<?php $number = 123; $txt = sprintf("2桁小数:%1\$.2f <br>小数点なし:%1\$u",$number); echo $txt; ?>
例 3
すべての可能なフォーマット値のデモンストレーション:
<?php $num1 = 123456789; $num2 = -123456789; $char = 50; // ASCII文字 50 は 2 // 注釈:フォーマット値 "%%" は百分号を返す echo sprintf("%%b = %b",$num1)."<br>"; // 2進数 echo sprintf("%%c = %c",$char)."<br>"; // ASCII文字 echo sprintf("%%d = %d",$num1)."<br>"; // 符号付きの10進数 echo sprintf("%%d = %d",$num2)."<br>"; // 符号付きの10進数 echo sprintf("%%e = %e",$num1)."<br>"; // 科学記数法(小文字) echo sprintf("%%E = %E",$num1)."<br>"; // 科学記数法(大文字) echo sprintf("%鑾u",$num1)."<br>"; // 符号なしの10進数(正) echo sprintf("%鑾u",$num2)."<br>"; // 符号なしの10進数(負) echo sprintf("%%f = %f",$num1)."<br>"; // 浮動小数点数(ローカル設定を考慮) echo sprintf("%%F = %F",$num1)."<br>"; // 浮動小数点数(ローカル設定を無視) echo sprintf("%%g = %g",$num1)."<br>"; // %%e より短い echo sprintf("%%G = %G",$num1)."<br>"; // %%E より短い echo sprintf("%%o = %o",$num1)."<br>"; // 8進数 echo sprintf("%%s = %s",$num1)."<br>"; // 文字列 echo sprintf("%%x = %x",$num1)."<br>"; // 十六進数(小文字) echo sprintf("%%X = %X",$num1)."<br>"; // 十六進数(大文字) echo sprintf("%%+d = %+d",$num1)."<br>"; // 符号記号(正) echo sprintf("%%+d = %+d",$num2)."<br>"; // 符号記号(負) ?>
例 4
文字列記号のデモンストレーション:
<?php $str1 = "Hello"; $str2 = "Hello world!"; echo sprintf("[%s]",$str1)."<br>"; echo sprintf("[%8s]",$str1)."<br>"; echo sprintf("[%-8s]",$str1)."<br>"; echo sprintf("[%08s]",$str1)."<br>"; echo sprintf("[%'*8s]",$str1)."<br>"; echo sprintf("[%8.8s]",$str2)."<br>"; ?>