Detailed explanation of how to use PHP sprintf() function_PHP tutorial

WBOY
Release: 2016-07-13 17:15:00
Original
815 people have browsed it

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);
                $fromUsername = $postObj->FromUserName;
                $toUsername = $postObj->ToUserName;
                $keyword = trim($postObj->Content);
                $time = time();
    $msgType = "text";
                $textTpl = "
       
       
       %s
       
       
       0
       
";            
    if(!empty( $keyword ))
                {
                
                 $contentStr = $this->keyrep($keyword);
     if(  empty($contentStr) )
     {
      $contentStr ="你是故意的吧,没文化真可怕";//你是故意的吧,没文化真可怕;
     }
     //$contentStr = @iconv('UTF-8','gb2312',$keyword);
                 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                 echo $resultStr;
     
                }else{
                 $contentStr = '没文化真可怕,居然不会打字!';//$this->keyrep($keyword);
                 //$contentStr = @iconv('UTF-8','gb2312',$keyword);
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                 echo $resultStr;
                }

What is used above is in xml. Let’s look at another example written by a netizen

The code is as follows Copy code


/**
* Use sprintf() function
* * @date 2012-12-17
* * @author cntnn11
​*/
/**
* Manual definition: The function writes a formatted string into a variable.
* His recognizable format
*           %% - Returns the percent symbol
*** * %C -character according to the ASCII value
; * %E -Science Counting Method (such as 1.5E+3)
*                                                                                                                                                                                                                                                    . *** *** *** *** *** *** *       sprintf($str, arg1, arg2, arg3...);
​*/

/**
* 1. %%
* Replace %% with %
​*/
$testStr = 'Test the %% parameter. What will it be replaced with?';
echo sprintf($testStr),'
';
//-> Test the % parameter. What will it be replaced with?
//Only one% left
//It seems that it really just returns a ‘%’. But how to use it in practical applications?
//I don’t know either~
echo '



';
/**
* 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 '


';


?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/628892.htmlTechArticleWe 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 sprintf() function, friends in need...
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!