Replace the percent sign (%) with a variable passed as a parameter:
<?php $number = 9 ; $str = " CODERCTO " ; $txt = sprintf ( " %s is visited by %u million people every day! " , $str , $number ) ; echo $txt ; ?>The execution output is as follows:
CODERCTO 每天有9 万人在访问!
The sprintf() function writes a formatted string into a variable.
The arg1, arg2, ++ parameters will be inserted into the main string at the percent sign (%) symbol. This function is executed step by step. At the first % sign, insert arg1, at the second % sign, insert arg2, and so on.
Note: If there are more % symbols than arg parameters, you must use placeholders. The placeholder is inserted after the % symbol and consists of a number and "$". See Example 2.
Tip: Related functions: printf(), vprintf(), vsprintf(), fprintf(), and vfprintf()
sprintf( format,arg1,arg2,arg++ )
parameter | describe |
---|---|
format | Required. Specifies a string and how to format variables within it. Possible format values: %% - returns a percent sign % %b - binary number %c - the character corresponding to the ASCII value %d - Decimal number with sign (negative, 0, positive) %e - Use lowercase scientific notation (e.g. 1.2e+2) %E - Use uppercase scientific notation (e.g. 1.2E+2) %u - Decimal number without sign (greater than or equal to 0) %f - floating point number (local setting) %F - floating point number (non-native setting) %g - the shorter version of %e and %f %G - shorter %E and %f %o - octal number %s - string %x - Hexadecimal number (lowercase letters) %X - hexadecimal number (uppercase letters) Additional format values. Must be placed between % and a letter (e.g. %.2f): + (Add + or - in front of a number to define the sign of the number. By default, only negative numbers are marked, and positive numbers are not marked) ' (Specifies what to use as padding, defaults to spaces. It must be used with a width specifier. For example: %'x20s (use "x" as padding)) - (left adjustment variable value) [0-9] (specifies the minimum width of the variable value) .[0-9] (specifies the number of decimal places or the maximum string length) Note: If multiple above format values are used, they must be used in the order above and cannot be disrupted. |
arg1 | Required. Specifies the parameters to be inserted at the first % sign in the format string. |
arg2 | Optional. Specifies the parameters to be inserted into the format string at the second % sign. |
arg++ | Optional. Specifies the parameters to be inserted into the format string at the third, fourth, etc. % symbols. |
Return value: | Returns a formatted string. |
---|---|
PHP version: | 4+ |
Use the format value %f:
<?php $number = 123 ; $txt = sprintf ( " %f " , $number ) ; echo $txt ; ?>Use placeholders:
<?php $number = 123 ; $txt = sprintf ( " With two decimal places: %1 $ .2f<br>Without decimal place: %1 $ u " , $number ) ; echo $txt ; ?>Demonstration of all possible format values:
<?php $num1 = 123456789 ; $num2 = - 123456789 ; $char = 50 ; // ASCII character 50 is 2 // Note: The format value "%%" returns the percent sign echo sprintf ( " %%b = %b " , $num1 ) . " <br> " ; // Binary number echo sprintf ( " %%c = %c " , $char ) . " <br> " ; // ASCII characters echo sprintf ( " %%d = %d " , $num1 ) . " <br> " ; // Signed decimal number echo sprintf ( " %%d = %d " , $num2 ) . " <br> " ; // Signed decimal number echo sprintf ( " %%e = %e " , $num1 ) . " <br> " ; // Scientific notation (lowercase) echo sprintf ( " %%E = %E " , $num1 ) . " <br> " ; // Scientific notation (uppercase) echo sprintf ( " %%u = %u " , $num1 ) . " <br> " ; // Unsigned decimal number (positive) echo sprintf ( " %%u = %u " , $num2 ) . " <br> " ; // Unsigned decimal number (negative) echo sprintf ( " %%f = %f " , $num1 ) . " <br> " ; // Floating point number (depending on local settings) echo sprintf ( " %%F = %F " , $num1 ) . " <br> " ; // Floating point number (regardless of local settings) echo sprintf ( " %%g = %g " , $num1 ) . " <br> " ; // Shorter than %e and %f echo sprintf ( " %%G = %G " , $num1 ) . " <br> " ; // Shorter than %E and %f echo sprintf ( " %%o = %o " , $num1 ) . " <br> " ; // octal number echo sprintf ( " %%s = %s " , $num1 ) . " <br> " ; // String echo sprintf ( " %%x = %x " , $num1 ) . " <br> " ; // Hexadecimal number (lowercase) echo sprintf ( " %%X = %X " , $num1 ) . " <br> " ; // Hexadecimal number (uppercase) echo sprintf ( " %%+d = %+d " , $num1 ) . " <br> " ; // Symbol specifier (positive) echo sprintf ( " %%+d = %+d " , $num2 ) . " <br> " ; // Sign specifier (negative) ?>Demonstration of string specifiers:
<?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> " ; ?>