PHP sprintf()関数
例
パーセント記号(%)を、引数として渡される変数に置き換える:
$number = 9;
$str = "サンプル";
$txt = sprintf("%s 毎日 %u 万人がアクセスしています!", $str, $number);
echo $txt;
実行出力結果は次のとおりです:
サンプル 每天有 9 万人在访问!
定義と用法
sprintf() 関数は、フォーマット済みの文字列を変数に書き込みます。
arg1、arg2、++ 引数は、メイン文字列のパーセント記号(%)の位置に挿入されます。この関数は段階的に実行されます。最初の % 記号には arg1 が挿入され、2番目の % 記号には arg2 が挿入され、以下同様に続きます。
注記:% 記号が arg 引数より多い場合は、プレースホルダを使用する必要があります。プレースホルダは % 記号の後に挿入され、数字と "\$" で構成されます。例 2 を参照してください。
ヒント:関連関数:printf()、 vprintf()、 vsprintf()、 fprintf()とvfprintf()
構文
sprintf(format,arg1,arg2,arg++)
| 引数 | 説明 |
|---|---|
| format | 必須です。文字列と、その中の変数をどのようにフォーマットするかを指定します。 指定可能なフォーマット値:
追加のフォーマット値。% と文字の間に置く必要があります(例:%.2f):
注記:上記のフォーマット値を複数使用する場合、これらは上記の順序で使用する必要があり、順序を入れ替えることはできません。 |
| arg1 | 必須です。format 文字列の最初の % 記号に挿入する引数を指定します。 |
| arg2 | オプションです。format 文字列の2番目の % 記号に挿入する引数を指定します。 |
| arg++ | オプションです。format 文字列の3番目、4番目などの % 記号に挿入する引数を指定します。 |
技術詳細
| 戻り値: | フォーマット済みの文字列を返します。 |
|---|---|
| PHP バージョン: | 4+ |
その他の例
例 2
プレースホルダを使用:
$number = 123;
$txt = sprintf("小数点以下2桁:%1\$.2f
<br>小数なし:%1\$u",$number);
echo $txt;
例を実行 »
例 3
指定可能なすべてのフォーマット値のデモ:
$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 = %u",$num1)."<br>"; //符号なし10進数(正)
echo sprintf("%%u = %u",$num2)."<br>"; //符号なし10進数(負)
echo sprintf("%%f = %f",$num1)."<br>"; //浮動小数点数(ロケール設定による)
echo sprintf("%%F = %F",$num1)."<br>"; //浮動小数点数(ロケール設定に依存しない)
echo sprintf("%%g = %g",$num1)."<br>"; //%e と %f のより短い方
echo sprintf("%%G = %G",$num1)."<br>"; //%E と %f のより短い方
echo sprintf("%%o = %o",$num1)."<br>"; //8進数
echo sprintf("%%s = %s",$num1)."<br>"; //文字列
echo sprintf("%%x = %x",$num1)."<br>"; //16進数(小文字)
echo sprintf("%%X = %X",$num1)."<br>"; //16進数(大文字)
echo sprintf("%%+d = %+d",$num1)."<br>"; //符号指定子(正)
echo sprintf("%%+d = %+d",$num2)."<br>"; //符号指定子(負)
例 4
文字列指定子のデモ:
$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>";
例を実行 »
PHP String リファレンスマニュアル その他の拡張