Hàm vfprintf() trong PHP

Mô hình

Ghi văn bản vào tệp văn bản có tên "test.txt":

<?php
$number = 9;
$str = "Beijing";
$file = fopen("test.txt","w");
echo vfprintf($file,"Có 탢ệu xe đạp ở %s.",array($number,$str));
?>

Mã trên sẽ xuất ra:

40

Dưới đây là văn bản sẽ được ghi vào tệp "test.txt":

Có 9 triệu xe đạp ở Bắc Kinh.

Định nghĩa và cách sử dụng

Hàm vfprintf() ghi chuỗi định dạng vào luồng đầu ra được chỉ định (ví dụ: tệp hoặc cơ sở dữ liệu).

Khác với fprintf(), tham số trong vfprintf() nằm trong mảng. Các phần tử mảng sẽ được chèn vào các dấu % trong chuỗi chính. Hàm này được thực hiện theo từng bước. Tại dấu % đầu tiên, chèn phần tử đầu tiên của mảng, tại dấu % thứ hai, chèn phần tử thứ hai của mảng, và cứ thế.

Chú thích:Nếu dấu % nhiều hơn arg Nếu có tham số, bạn phải sử dụng ký hiệu giữ chỗ. Ký hiệu giữ chỗ được chèn sau dấu %, bao gồm số và "\$". Xem ví dụ 2.

Các hàm liên quan:

Cú pháp

vfprintf(stream,format,argarray)
Tham số Mô tả
stream Bắt buộc. Quy định nơi ghi hoặc xuất chuỗi.
format

Bắt buộc. Quy định chuỗi và cách định dạng các biến trong chuỗi.

Các giá trị định dạng có thể:

  • %% - Trả về một dấu %
  • %b - Số nhị phân
  • %c - Ký tự tương ứng với giá trị ASCII
  • %d - Số thập phân có dấu (+, 0, số dương)
  • %e - Sử dụng hệ số số học in thường (ví dụ 1.2e+2)
  • %E - Sử dụng hệ số số học in hoa (ví dụ 1.2E+2)
  • 蒬ố thập phân không chứa dấu + hoặc - (lớn hơn hoặc bằng 0)
  • %f - Số thập phân (cài đặt địa phương)
  • %F - Số thập phân (không phải cài đặt địa phương)
  • %g - Ngắn hơn %e và %f
  • %G - Ngắn hơn %E và %f
  • %o - Số tám
  • %s - Chữ
  • %x - Số hexa (ký tự in thường)
  • %X - Số hexa (ký tự in hoa)

Giá trị định dạng bổ sung. Được đặt giữa % và ký tự (ví dụ %.2f):

  • + (Đặt + hoặc - trước số để xác định số dương hoặc âm. Mặc định, chỉ số âm mới được đánh dấu, số dương không được đánh dấu)
  • ‘ (định nghĩa sử dụng gì để lấp đầy, mặc định là khoảng trống. Nó phải được sử dụng cùng với bộ số đo chiều rộng. Ví dụ: '%x20s' (sử dụng 'x' để lấp đầy))
  • - (chỉnh trái giá trị biến)
  • .[0-9] (định nghĩa độ rộng giá trị biến)
  • .[0-9] (định nghĩa số thập phân hoặc độ dài chuỗi tối đa)

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

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

Chi tiết kỹ thuật

Trả về giá trị: Trả về độ dài của chuỗi được ghi.
PHP version: 5+

More examples

Ví dụ 1

Ghi văn bản vào tệp:

<?php
$num1 = 123;
$num2 = 456;
$file = fopen("test.txt","w");
vfprintf($file,"%f%f",array($num1,$num2));
?>

Dưới đây là văn bản sẽ được ghi vào tệp "test.txt":

123.000000456.000000

Ví dụ 2

Sử dụng định dạng:

<?php
$number = 123;
$file = fopen("test.txt","w");
vfprintf($file,"Với 2 số thập phân: %1$.2f
\nKhông có số thập phân: %1$s",array($number));
?>

Dưới đây là văn bản sẽ được ghi vào tệp "test.txt":

Với 2 số thập phân: 123.00
Không có số thập phân: 123

Ví dụ 3

Sử dụng printf() để minh họa tất cả các giá trị định dạng có thể:

<?php
$num1 = 123456789;
$num2 = -123456789;
$char = 50; // ASCII 字符 50 là 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); // Số thập phân không dấu (dương)
printf("%鑾u <br>", $num2); // Số thập phân không 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
printf("%%s = %s <br>", $num1); // Chữ
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ữ hoa)
printf("%%+d = %+d <br>", $num1); // Ký hiệu giải thích (dương)
printf("%%+d = %+d <br>", $num2); // Giải thích ký hiệu (âm)
?>

Chạy ví dụ