PHP vprintf()関数
例
形式化された文字列を出力します:
<?php $number = 9; $str = "Beijing"; vprintf("There are 쥕lion bicycles in %s.",array($number,$str)); ?>
定義と使用法
vprintf()関数は形式化された文字列を出力します。
printf()とは異なり、vprintf()のパラメータは配列に配置されます。配列の要素はメイン文字列の % 符号に挿入されます。この関数は順次実行されます。最初の % 符号に最初の配列要素が挿入され、次の % 符号に次の配列要素が挿入され、依此类推です。
注释:もし % 符号が多い場合 arg パラメータが指定されない場合、占位符を使用する必要があります。占位符は % 符号の後に数字と "\$" で構成されます。例2を参照してください。
ヒント:関連関数:sprintf()、printf()、vsprintf()、fprintf()、vfprintf()
文法
vprintf(format,argarray)
パラメータ | 説明 |
---|---|
format |
必須です。文字列とその中の変数のフォーマット方法を規定します。 可能なフォーマット値:
追加のフォーマット値。% とアルファベットの間に配置する必要があります(例:%.2f):
注释:如果使用多个格式值,它们必须按照以上顺序。 |
argarray | 必需。带有参数的一个数组,这些参数会被插到 format 字符串中的 %% 符号处。 |
技术细节
返回值: | 返回被输出的字符串的长度。 |
PHP 版本: | 4.1.0+ |
更多实例
例子 1
使用格式值 %%f:
<?php $num1 = 123; $num2 = 456; vprintf("%f%f", array($num1, $num2)); ?>
例子 2
使用占位符:
<?php $number = 123; vprintf("有两位小数:%1\$.2f<br>没有小数:%1\$u", array($number)); ?>
例子 3
使用 printf() 来演示所有可能的格式值:
<?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!"; vprintf("[%s]<br>",array($str1)); vprintf("[%8s]<br>",array($str1)); vprintf("[%-8s]<br>",array($str1)); vprintf("[%08s]<br>",array($str1)); vprintf("[%'*8s]<br>",array($str1)); vprintf("[%8.8s]<br>",array($str2)); ?>