Hàm fprintf() trong PHP

Ví dụ

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 fprintf($file,"Có 탢ệu xe đạp ở %s.",$number,$str);
?>

Kết quả đầu ra của đoạn mã trên:

40

Văn bản sau 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 fprintf() 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).

arg1,arg2,arg++ Tham số sẽ được chèn vào 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 arg1, tại dấu % thứ hai, chèn arg2, theo thứ tự.

Ghi 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

fprintf(stream,Định dạng,arg1,arg2,arg++)
Tham số Mô tả
stream Đúng là. Định nghĩa nơi viết/đọc chuỗi.
Định dạng

Đúng là. Định nghĩa 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 chứa dấu cộng hoặc trừ (số âm, 0, số dương)
  • %e - Sử dụng hệ số nguyên dại in thường (ví dụ 1.2e+2)
  • %E - Sử dụng hệ số nguyên dại in hoa (ví dụ 1.2E+2)
  • 蒬ố thập phân không chứa dấu cộng hoặc trừ (bằng hoặc lớn hơn 0)
  • %f - Số thập phân (tùy thuộc vào cài đặt địa phương)
  • %F - Số thập phân (không tùy thuộc vào 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 - Chuỗi
  • %x - Số hexa (ký tự in thường)
  • %X - Số hexa (ký tự in hoa)

Giá trị định dạng thêm. Đúng là phải đặt trong % và ký tự (ví dụ %.2f):

  • + (thêm + hoặc - trước số để xác định tính dương hoặc âm của số)
    Mặc định, chỉ có số âm mới được đánh dấu, số dương không được đánh dấu)
  • ' (định nghĩa phần lấp đầy sử dụng gì, mặc định là khoảng trống. Nó phải được sử dụng cùng với bộ số đo độ rộng)
    Ví dụ: '%x20s' (sử dụng "x" làm phần lấp đầy)
  • - (điều chỉnh trái giá trị biến)
  • .[0-9] (định nghĩa độ rộng tối thiểu của giá trị biến)
  • .[0-9] (định nghĩa số lượng 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 bổ sung, thì phải sử dụng theo thứ tự trên.

arg1 Bắt buộc. Quy định chèn vào Định dạng ký tự % ở vị trí thứ nhất trong chuỗi.
arg2 Tùy chọn. Quy định chèn vào Định dạng ký tự % ở vị trí thứ hai trong chuỗi.
arg++ Tùy chọn. Quy định chèn vào Định dạng Các ký tự % ở vị trí thứ ba, thứ tư, v.v. trong chuỗi.

Chi tiết kỹ thuật

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

Các ví dụ khác

Ví dụ 1

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

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

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

123.000000

Ví dụ 2

Sử dụng kí tự chèn:

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

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

Có hai số thập phân: 123.00
Không có số thập phân: 123

Ví dụ 3

Sử dụng printf() để trình bày 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 cục bộ)
printf("%%F = %F <br>",$num1); // Số thập phân (không xem xét cài đặt cục bộ)
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); // Chuỗi
printf("%%x = %x <br>",$num1); // Số hexa (chữ thường)
printf("%%X = %X <br>",$num1); // Số hexa (chữ hoa)
printf("%%+d = %+d <br>",$num1); // Dấu hiệu giải thích (dương)
printf("%%+d = %+d <br>",$num2); // Giải thích dấu hiệu (âm)
?>

Chạy ví dụ