Home >Backend Development >PHP Tutorial >Learn to use PHP's sprintf() function to achieve formatted output

Learn to use PHP's sprintf() function to achieve formatted output

王林
王林Original
2023-06-27 08:12:122074browse

In PHP development, the standardization and formatting of output content is very important, especially when processing data types involving amounts, time, etc. PHP provides many functions to easily achieve these formatted outputs, one of which is the sprintf() function.

The sprintf() function is a formatted output function. It can format and output the following parameters according to the specified format string. Its syntax is as follows:

sprintf(format,arg1,arg2,......)

Among them, format is a format string that can contain one or more format specifiers. arg1, arg2, etc. are parameters that need to be formatted.

The format specifier starts with the % character, followed by a character to specify the type of the parameter. Common format specifiers are as follows:

  • %s string type
  • %d integer type
  • %f floating point type
  • %c Character type
  • %b Binary type
  • %o Octal type
  • %x Hexadecimal type
  • %e Scientific notation type

For example, we use the sprintf() function to output a string containing name and age, where the name is of string type and the age is of integer type. You can write the code like this:

$name = "Tom";
$age = 18;
echo sprintf("我的名字是%s,年龄是%d岁。",$name,$age);

The running results are as follows:

我的名字是Tom,年龄是18岁。

As you can see, the sprintf() function formats the parameters according to the specified format string and outputs it, and automatically replaces the format description. placeholder for the symbol.

In addition to common format specifiers, the sprintf() function also supports some special tags and qualifiers, which can be used to finely control the output format. For example, you can use a decimal point followed by a number to specify the number of decimal places in a floating-point number, a plus sign ( ) to specify the sign of a positive or negative number, zeros to fill gaps, etc.

The following are some commonly used special marks and qualifiers:

  • The decimal point is followed by a number, such as %.2f, which means two decimal places are retained
  • Plus sign ( ), such as % d, indicating that both positive and negative numbers display symbols
  • Minus sign (-), such as %-10s, indicating left alignment and filling spaces on the right side of the placeholder, with a total width of 10 characters
  • Zero (0), such as d, means padding zeros on the left side of the placeholder, the total width is 4 characters
  • pound sign (#), such as %#o, means output octal is prefixed with 0
  • space ( ), such as % d, indicating that positive numbers display spaces and negative numbers display symbols

The following is a practical example to demonstrate how to use the sprintf() function Perform formatted output. Suppose we have an order information table, which includes fields such as order number, order date, order amount, etc. We want to output the order information to the page in the form of a table.

First define a two-dimensional array $orders to simulate the order information list:

$orders = [
    ["order_no" => "20190813001", "order_date" => "2019-08-13", "order_amount" => 289.5],
    ["order_no" => "20190813002", "order_date" => "2019-08-13", "order_amount" => 1032],
    ["order_no" => "20190813003", "order_date" => "2019-08-13", "order_amount" => 760.85],
    ["order_no" => "20190814001", "order_date" => "2019-08-14", "order_amount" => 948.5],
    ["order_no" => "20190814002", "order_date" => "2019-08-14", "order_amount" => 213.75],
    ["order_no" => "20190814003", "order_date" => "2019-08-14", "order_amount" => 657.9],
    ["order_no" => "20190815001", "order_date" => "2019-08-15", "order_amount" => 1368.25],
    ["order_no" => "20190815002", "order_date" => "2019-08-15", "order_amount" => 768.5],
    ["order_no" => "20190815003", "order_date" => "2019-08-15", "order_amount" => 840.8]
];

Then write the following code and use the sprintf() function to output the order information:

echo "<table border='1'>";
echo "<tr><th>订单号</th><th>订单日期</th><th>订单金额</th></tr>";
foreach($orders as $order){
    echo "<tr>";
    echo sprintf("<td>%s</td><td>%s</td><td>¥%.2f元</td>",$order["order_no"],$order["order_date"],$order["order_amount"]);
    echo "</tr>";
}
echo "</table>";

Run The results are as follows:

订单号    订单日期    订单金额
20190813001    2019-08-13    ¥289.50元
20190813002    2019-08-13    ¥1032.00元
20190813003    2019-08-13    ¥760.85元
20190814001    2019-08-14    ¥948.50元
20190814002    2019-08-14    ¥213.75元
20190814003    2019-08-14    ¥657.90元
20190815001    2019-08-15    ¥1368.25元
20190815002    2019-08-15    ¥768.50元
20190815003    2019-08-15    ¥840.80元

It can be seen that using the sprintf() function to format the output can make the output content more standardized and beautiful, and can provide more precise control over the output content. In actual development, we can flexibly use the sprintf() function to meet various complex output requirements and improve development efficiency and program readability.

The above is the detailed content of Learn to use PHP's sprintf() function to achieve formatted output. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn