PHP vfprintf()関数
例
テキストを"test.txt"という名前のテキストファイルに書き込みます:
<?php $number = 9; $str = "北京"; $file = fopen("test.txt", "w"); echo vfprintf($file,"北京には%d百万の自転車があります。",array($number,$str)); ?>
上記のコードは以下のように出力されます:
40
以下のテキストがファイル"test.txt"に書き込まれます:
北京には900万の自転車があります。
定義と用法
vfprintf()関数は、指定された出力ストリーム(例:ファイルやデータベース)に形式化された文字列を書き込みます。
fprintf()とは異なり、vfprintf()のパラメータは配列に配置されます。配列の要素はメイン文字列の%シンボルに挿入されます。この関数はステップバイステップで実行されます。最初の%シンボルに最初の配列要素が挿入され、次の%シンボルに次の配列要素が挿入され、依此类推です。
注釈:%シンボルが多い場合、 arg パラメータがあれば、占位符を使用する必要があります。占位符は%シンボルの後に配置され、数字と"$"で構成されます。例2を参照してください。
関連する関数:
文法
vfprintf(stream,format,argarray)
パラメータ | 説明 |
---|---|
stream | 必須。文字列を書き込む/出力する場所を定義します。 |
format |
必須。文字列とその中の変数のフォーマットを定義します。 可能なフォーマット値:
追加のフォーマット値。%とアルファベットの間に配置する必要があります(例:%.2f)
注釈:複数のフォーマット値を使用する場合、それらは上記の順序でなければなりません。 |
argarray | 必須。引数を持つ配列で、これらの引数が挿入されます format 文字列の %% 符号の場所。 |
技術的詳細
返り値: | 書き込まれた文字列の長さを返します。 |
PHP バージョン: | 5+ |
さらに多くの例
例 1
テキストをファイルに書き込む:
<?php $num1 = 123; $num2 = 456; $file = fopen("test.txt", "w"); vfprintf($file, "%f%f", array($num1, $num2)); ?>
以下のテキストはファイル "test.txt" に書き込まれます:
123.000000456.000000
例 2
占位符の使用:
<?php $number = 123; $file = fopen("test.txt", "w"); vfprintf($file, "With 2 decimals: %1$.2f \n小数点以下なし: %1$u", array($number)); ?>
以下のテキストはファイル "test.txt" に書き込まれます:
2桁の小数: 123.00 小数点以下なし: 123
例 3
使用 printf() ですべてのフォーマット値を示します:
<?php $num1 = 123456789; $num2 = -123456789; $char = 50; // ASCII文字 50 は 2 // 注釈:フォーマット値 "%%" は百分号を返します printf("%%b = %%b <br>", $num1); // 2進数 printf("%%c = %%c <br>", $char); // ASCII文字 printf("%%d = %%d <br>", $num1); // 符号付きの10進数 printf("%%d = %%d <br>", $num2); // 符号付きの10進数 printf("%%e = %%e <br>", $num1); // 科学記数法(小文字) printf("%%E = %%E <br>", $num1); // 科学記数法(大文字) printf("%鑾u <br>", $num1); // 符号なしの10進数(正) printf("%鑾u <br>", $num2); // 符号なしの10進数(負) 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); // 符号記号(負) ?>