We know that the sprintf() function writes a formatted string into a variable. We often see this type of code. Let me introduce how to use the sprintf() function. Friends in need can refer to it. .
Usage
sprintf(format,arg1,arg2,arg++)
Description
The format parameter is the format of the conversion, starting with the percent sign ("%") and ending with the conversion character. Possible format values below:
•%% - Returns the percent symbol
•%b - binary number
•%c - character
according to ASCII value
•%d - signed decimal number
•%e - Continuous counting method (e.g. 1.5e+3)
•%u - unsigned decimal number
•%f - floating point number (local settings aware)
•%F - floating point number (not local settings aware)
•%o - octal number
•%s - string
•%x - Hexadecimal number (lowercase letters)
•%X - Hexadecimal number (capital letters)
Arguments arg1, arg2, ++, etc. are inserted into the main string at the percent sign (%) symbol. This function is executed step by step. At the first % sign, arg1 is inserted, at the second % sign, arg2, and so on.
I will see the following code on the WeChat open platform
代码如下 | 复制代码 |
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); |
What is used above is in xml. Let’s look at another example written by a netizen
The code is as follows | Copy code |
'; /** * 2. %b * This parameter can only replace integer data. If it is a floating point type, then it will only take the integer part. decimal points will be ignored * If it is a non-integer data, then return 0 */ $testStr = 'I heard that %b will be replaced with a binary number, is it true? '; $arg = '10'; echo sprintf($testStr, $arg),' '; //-> 1010; $arg=10; Really replaced! //-> 101; $arg=4.5 //-> 0; $arg=str/bool... echo ' '; /** * 3. %c returns the ASCII code of the character encoding * TIP: [He does not return ASCII code] * $arg accepts an int, that is, an ASCII numeric value, and then returns the character corresponding to the value */ $testStr = 'Let's test %c: see if it can return ASCII code'; $arg = '122'; echo sprintf($testStr, $arg); //-> A; $arg=65; //-> z; $arg=122 echo ' '; /** * 4. %d replaces %d in a character with int type * TIP: This can be any int type. * If it is a floating point data, only the integer part will be replaced * If it is non-numeric, it will be replaced with 0 */ $testStr = "This is an ID, the ID number is %d,"; $arg = '-4'; echo sprintf($testStr, $arg); //-> 4; $arg=4.5 //-> 0; $arg=[a-zA-Zs]; echo ' '; /** * 5. %e Scientific notation * TIP: Present a very long integer data in scientific notation * Same as %d, this function will also ignore the decimal point and replace any non-numeric data with 0 */ $testStr = "I am very long, with more than N digits... %e"; $arg = '46498464654864564642449463699789789313'; echo sprintf($testStr, $arg); //-> 4.649846e+14; $arg=464984646548645.64642449463699789789313 //-> 0.000000e+0; $arg=asdfasdf; echo ' '; /** * 5. %u - unsigned decimal number * not understand. . . If it is a negative number, I don’t know what its value is */ $testStr = "I am an unsigned decimal number... %u"; $arg = '456'; echo sprintf($testStr, $arg); echo ' '; /** * 6. %f - floating point number (local settings aware) * Is it the opposite of %d? * This will return a floating point number, and there are only 6 fixed digits after the decimal point * The string is also 0; */ $testStr = "What is the difference from that d? %f"; $arg = '456.235645'; echo sprintf($testStr, $arg); echo ' '; /** * 7. %F - floating point number (not local settings aware) * Is it the opposite of %f? Why is it no different from small f? No way */ $testStr = "What is the difference between it and the lowercase f? %F"; $arg = '12312316.46898'; echo sprintf($testStr, $arg); echo ' '; /** * 8. %o - Octal number * Same as %d. It’s just that the parameter is passed in an octal value */ $testStr = "Replace octal number with decimal %o"; $arg = '8'; echo sprintf($testStr, $arg); echo ' '; /** * 9. %x - Hexadecimal number (lowercase letters) * Same as %d/%o. It’s just that the parameter is passed in a hexadecimal value with lowercase letters */ $testStr = "Replace hexadecimal number with decimal %o"; $arg = '456d12'; echo sprintf($testStr, $arg); echo ' '; /** * 10. %X - Hexadecimal number (uppercase letters) * Same as %d/%o/%x. It’s just that the parameter is passed in a hexadecimal value with uppercase letters * It seems that there is no difference between the upper and lower case letters of %x %X... */ $testStr = "Replace uppercase hexadecimal numbers with decimal %o"; $arg = '456D12'; echo sprintf($testStr, $arg); echo ' '; /** * 11. %s - String * Replace %s with the string you passed in */ $string = "This is the sprintf string (%s) used for testing. I spent %f yuan today. There are %d stations from Xierqi to Zhichun Road. Go to work"; $arg = ''; echo sprintf($string, $arg, 234, 10); echo ' '; ?> |