Hàm sprintf() của PHP

Mẫu

Thay thế dấu phẩy (%%) bằng một biến được truyền làm tham số:

<?php
$number = 2;
$str = "Shanghai";
$txt = sprintf("Có 탢ệu xe trong %s.",$number,$str);
echo $txt;
?>

Chạy ví dụ

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

Hàm sprintf() ghi chuỗi định dạng vào biến.

arg1arg2++ 参 số sẽ được chèn vào ký hiệu (%) của chuỗi chính. Hàm này được thực hiện theo từng bước. Tại ký hiệu % thứ nhất, chèn arg1,tại ký hiệu % thứ hai, chèn arg2,tiếp theo.

Chú thích:Nếu ký hiệu % nhiều hơn arg Nếu có tham số, bạn phải sử dụng占位符. Các ký hiệu đặt vị trí nằm sau dấu %, được组成 bởi số và "\$". Xem ví dụ 2.

Lưu ý:Các hàm liên quan: printf()、 vprintf()、 vsprintf()、 fprintf() và vfprintf()

Cú pháp

sprintf(format,arg1,arg2,arg++)
Tham số Mô tả
format

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

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

  • %% - Trả về một dấu phần trăm %
  • %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 cộng hoặc trừ (số âm, 0, số dương)
  • %e - Sử dụng số học nhỏ (ví dụ 1.2e+2)
  • %E - Sử dụng số học lớn (ví dụ 1.2E+2)
  • 蒬ố thập phân không chứa dấu cộng hoặc trừ (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 - Chuỗi
  • %x - Số hexa (ký tự in thường)
  • %X - Số hexa (ký tự in hoa)

Giá trị định dạng bổ sung. Bắt buộc phải đặt giữa % và chữ cái (ví dụ %.2f):

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

arg1 bắt buộc. Quy định chèn vào format 参 số ở ký hiệu % thứ nhất của chuỗi.
arg2 tùy chọn. Quy định chèn vào format 参 số ở ký hiệu % thứ hai của chuỗi.
arg++ tùy chọn. Quy định chèn vào format 参 số ở ký hiệu % thứ ba, bốn của chuỗi.

Chi tiết kỹ thuật

Giá trị trả về: Trả về chuỗi đã định dạng.
Phiên bản PHP: 4+

Các ví dụ khác

Ví dụ 1

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

<?php
$number = 123;
$txt = sprintf("%f",$number);
echo $txt;
?>

Chạy ví dụ

Ví dụ 2

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

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

Chạy ví dụ

Ví dụ 3

Giải thích về 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 phẩy%
echo sprintf("%%b = %b",$num1)."<br>"; // số nhị phân
echo sprintf("%%c = %c",$char)."<br>"; // ký tự ASCII
echo sprintf("%%d = %d",$num1)."<br>"; // số nguyên có dấu
echo sprintf("%%d = %d",$num2)."<br>"; // số nguyên có dấu
echo sprintf("%%e = %e",$num1)."<br>"; // số học (chữ thường)
echo sprintf("%%E = %E",$num1)."<br>"; // số học (chữ hoa)
echo sprintf("%鑾u",$num1)."<br>"; // số nguyên không dấu (dương)
echo sprintf("%鑾u",$num2)."<br>"; // số nguyên không dấu (âm)
echo sprintf("%%f = %f",$num1)."<br>"; // số thập phân (xem cài đặt địa phương)
echo sprintf("%%F = %F",$num1)."<br>"; // số thập phân (không xem cài đặt địa phương)
echo sprintf("%%g = %g",$num1)."<br>"; // ngắn hơn %e và %f
echo sprintf("%%G = %G",$num1)."<br>"; // ngắn hơn %E và %f
echo sprintf("%%o = %o",$num1)."<br>"; // số tám
echo sprintf("%%s = %s",$num1)."<br>"; // Chuỗi
echo sprintf("%%x = %x",$num1)."<br>"; // Số hexa (chữ thường)
echo sprintf("%%X = %X",$num1)."<br>"; // Số hexa (chữ hoa)
echo sprintf("%%+d = %+d",$num1)."<br>"; // Ký hiệu chỉ số (dương)
echo sprintf("%%+d = %+d",$num2)."<br>"; // Ký hiệu chỉ số (âm)
?>

Chạy ví dụ

Ví dụ 4

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

<?php
$str1 = "Hello";
$str2 = "Hello world!";
echo sprintf("[%s]",$str1)."<br>";
echo sprintf("[%8s]",$str1)."<br>";
echo sprintf("[%-8s]",$str1)."<br>";
echo sprintf("[%08s]",$str1)."<br>";
echo sprintf("[%'*8s]",$str1)."<br>";
echo sprintf("[%8.8s]",$str2)."<br>";
?>

Chạy ví dụ