PHP fprintf() 関数

テキストを "test.txt" という名前のテキストファイルに書き込みます:

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt", "w");
echo fprintf($file,"There are 쥕lion bicycles in %s.",$number,$str);
?>

上記のコードの出力:

40

以下のテキストがファイル "test.txt" に書き込まれます:

北京には900万台の自転車があります。

定義と用法

fprintf() 関数は、指定された出力ストリーム(例:ファイルやデータベース)に形式化された文字列を書き込みます。

arg1arg2arg++ パラメータがメインの文字列の % 符号に挿入されます。この関数はステップごとに実行されます。最初の % 符号に、 arg1第2個 % 符号に、 arg2など、順に挿入します。

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

関連する関数:

文法

fprintf(stream,format,arg1,arg2,arg++)
パラメータ 説明
stream 必須です。文字列をどこに書き込むか/出力する場所を指定します。
format

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

可能なフォーマット値:

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

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

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

注釈:もし複数の追加のフォーマット値を使用する場合は、上記の順序で使用する必要があります。

arg1 必須。以下に挿入する format 文字列の第1 % 符号の位置の引数。
arg2 任意。以下に挿入する format 文字列の第2 % 符号の位置の引数。
arg++ 任意。以下に挿入する format 文字列の第3、4など % 符号の位置の引数。

技術的詳細

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

さらに多くの例

例 1

テキストをファイルに書き込む:

<?php
$number = 123;
$file = fopen("test.txt", "w");
fprintf($file, "%f", $number);
?>

以下のテキストはファイル "test.txt" に書き込まれます:

123.000000

例 2

占位符を使用して:

<?php
$number = 123;
$file = fopen("test.txt", "w");
fprintf($file, "有两位小数:%1$.2f
\n小数がありません:%1$u", $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); // 記号記号(マイナス)
?>

実行例