Hàm vprintf() trong PHP

实例

输出格式化的字符串:

<?php
$number = 9;
$str = "Beijing";
vprintf("Có 탢ệu xe đạp ở %s.", array($number, $str));
?>

Chạy ví dụ

定义和用法

vprintf() 函数输出格式化的字符串。

与 printf() 不同,vprintf() 中的参数位于数组中。数组元素将被插入到主字符串中的百分号(%)符号处。该函数是逐步执行的。在第一个 % 符号处,插入第一个数组元素,在第二个 % 符号处,插入第二个数组元素,依此类推。

Ghi chú:如果 % 符号多于 arg 参数,则您必须使用占位符。占位符被插入到 % 符号之后,由数字和 "\$" 组成。请参见实例 2。

提示:相关函数:sprintf()、 printf()、 vsprintf()、 fprintf() 和 vfprintf()

语法

vprintf(format,argarray)
参数 描述
format

必需。规定字符串以及如何格式化其中的变量。

可能的格式值:

  • %% - 返回一个百分号 %
  • %b - 二进制数
  • %c - ASCII 值对应的字符
  • %d - 包含正负号的十进制数(负数、0、正数)
  • %e - 使用小写的科学计数法(例如 1.2e+2)
  • %E - 使用大写的科学计数法(例如 1.2E+2)
  • 퉦包含正负号的十进制数(大于等于 0)
  • %f - 浮点数(本地设置)
  • %F - 浮点数(非本地设置)
  • %g - 较短的 %e 和 %f
  • %G - 较短的 %E 和 %f
  • %o - 八进制数
  • %s - 字符串
  • %x - 十六进制数(小写字母)
  • %X - 十六进制数(大写字母)

附加的格式值。必需放置在 % 和字母之间(例如 %.2f):

  • + (在数字前面加上 + 或 - 来定义数字的正负性。默认情况下,只有负数才做标记,正数不做标记)
  • ' (规定使用什么作为填充,默认是空格。它必须与宽度指定器一起使用。例如:%'x20s(使用 "x" 作为填充))
  • - (左调整变量值)
  • [0-9] (规定变量值的最小宽度)
  • .[0-9] (định nghĩa số chữ số thập phân hoặc độ dài chuỗi tối đa)

Ghi chú:Nếu sử dụng nhiều giá trị định dạng, chúng phải theo thứ tự trên

argarray Bắt buộc. Một mảng có tham số, các tham số này sẽ được chèn vào format Ở ký tự % trong chuỗi.

Chi tiết kỹ thuật

Giá trị trả về: Trả về độ dài của chuỗi được xuất ra.
Phiên bản PHP: 4.1.0+

Các ví dụ khác

Ví dụ 1

Sử dụng giá trị định dạng %f

<?php
$num1 = 123;
$num2 = 456;
vprintf("%f%f",array($num1,$num2));
?>

Chạy ví dụ

Ví dụ 2

Sử dụng dấu đặt chỗ

<?php
$number = 123;
vprintf("Có hai chữ số thập phân:%1\$.2f<br>Không có chữ số thập phân:%1\$u",array($number));
?>

Chạy ví dụ

Ví dụ 3

Sử dụng printf() để演示 tất cả các giá trị định dạng có thể

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // Ký tự ASCII 50 là 2
// Ghi chú: Giá trị định dạng "%%" trả về dấu percent
printf("%%b = %b <br>",$num1); // Số nhị phân
printf("%%c = %c <br>",$char); // Ký tự ASCII
printf("%%d = %d <br>",$num1); // Số thập phân có dấu
printf("%%d = %d <br>",$num2); // Số thập phân có dấu
printf("%%e = %e <br>",$num1); // Định dạng số học (in thường)
printf("%%E = %E <br>",$num1); // Định dạng số học (in hoa)
printf("%鑾u <br>",$num1); // Số thập phân không có dấu (dương)
printf("%鑾u <br>",$num2); // Số thập phân không có dấu (âm)
printf("%%f = %f <br>",$num1); // Số thập phân (xem xét cài đặt địa phương)
printf("%%F = %F <br>",$num1); // Số thập phân (không xem xét cài đặt địa phương)
printf("%%g = %g <br>",$num1); // Ngắn hơn %e và %f
printf("%%G = %G <br>",$num1); // Ngắn hơn %E và %f
printf("%%o = %o <br>",$num1); // Số tám phân
printf("%%s = %s <br>",$num1); // Chuỗi
printf("%%x = %x <br>",$num1); // Số thập lục phân (chữ thường)
printf("%%X = %X <br>",$num1); // Số thập lục phân (chữ in)
printf("%%+d = %+d <br>",$num1); // Ký hiệu chỉ thị (dương)
printf("%%+d = %+d <br>",$num2); // Ký hiệu chỉ thị (âm)
?>

Chạy ví dụ

Ví dụ 4

Giải thích ký hiệu chuỗi:

<?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));
?>

Chạy ví dụ