PHP sprintf() 函數(shù)使用方法詳解
來源:程序員人生 發(fā)布時(shí)間:2014-02-17 08:32:04 閱讀次數(shù):2666次
我們知道sprintf() 函數(shù)把格式化的字符串寫寫入一個(gè)變量中,我們經(jīng)常會看到這類代碼了,下面我來介紹sprintf() 函數(shù)使用方法,有需要的朋友可參考參考.
用法
sprintf(format,arg1,arg2,arg++)
說明
參數(shù) format 是轉(zhuǎn)換的格式,以百分比符號 ("%") 開始到轉(zhuǎn)換字符結(jié)束.下面的可能的 format 值:
•%% - 返回百分比符號
•%b - 二進(jìn)制數(shù)
•%c - 依照 ASCII 值的字符
•%d - 帶符號十進(jìn)制數(shù)
•%e - 可續(xù)計(jì)數(shù)法(比如 1.5e+3)
•%u - 無符號十進(jìn)制數(shù)
•%f - 浮點(diǎn)數(shù)(local settings aware)
•%F - 浮點(diǎn)數(shù)(not local settings aware)
•%o - 八進(jìn)制數(shù)
•%s - 字符串
•%x - 十六進(jìn)制數(shù)(小寫字母)
•%X - 十六進(jìn)制數(shù)(大寫字母)
arg1, arg2, ++ 等參數(shù)將插入到主字符串中的百分號 (%) 符號處.該函數(shù)是逐步執(zhí)行的.在第一個(gè) % 符號中,插入 arg1,在第二個(gè) % 符號處,插入 arg2,依此類推.
我在微信開放平臺會看到如下實(shí)例代碼如下:
- $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
- $fromUsername = $postObj->FromUserName;
- $toUsername = $postObj->ToUserName;
- $keyword = trim($postObj->Content);
- $time = time();
- $msgType = "text";
- $textTpl = "<xml>
- <ToUserName><![CDATA[%s]]></ToUserName>
- <FromUserName><![CDATA[%s]]></FromUserName>
- <CreateTime>%s</CreateTime>
- <MsgType><![CDATA[%s]]></MsgType>
- <Content><![CDATA[%s]]></Content>
- <FuncFlag>0</FuncFlag>
- </xml>";
- if(!emptyempty( $keyword ))
- {
-
- $contentStr = $this->keyrep($keyword);
- if( emptyempty($contentStr) )
- {
- $contentStr ="你是故意的吧,沒文化真可怕";
- }
-
- $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
- echo $resultStr;
-
- }else{
- $contentStr = '沒文化真可怕,居然不會打字!';
-
- $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
- echo $resultStr;
- }
上面用到的是xml中了,下面再看一個(gè)網(wǎng)友寫的例子
實(shí)例代碼如下:
- <?php
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $testStr = '測試下%%這個(gè)參數(shù).會被替換成什么呢';
- echo sprintf($testStr),'<br/>';
-
-
-
-
- echo '<br/><hr/><br/>';
-
-
-
-
-
- $testStr = '聽說%b會替換成二進(jìn)制數(shù),真的嗎?';
- $arg = '10';
- echo sprintf($testStr, $arg),'<br/>';
-
-
-
- echo '<br/><hr/><br/>';
-
-
-
-
-
-
- $testStr = '我們來測試下 %c : 試試看能返回ASCII碼嗎';
- $arg = '122';
- echo sprintf($testStr, $arg);
-
-
- echo '<br/><hr/><br/>';
-
-
-
-
-
-
- $testStr = "這是一個(gè)ID,ID號是%d,";
- $arg = '-4';
- echo sprintf($testStr, $arg);
-
-
- echo '<br/><hr/><br/>';
-
-
-
-
-
-
- $testStr = "我很長,有N多位... %e";
- $arg = '46498464654864564642449463699789789313';
- echo sprintf($testStr, $arg);
-
-
- echo '<br/><hr/><br/>';
-
-
-
-
-
- $testStr = "我是無符號的十進(jìn)制數(shù)... %u";
- $arg = '456';
- echo sprintf($testStr, $arg);
- echo '<br/><hr/><br/>';
-
-
-
-
-
-
-
- $testStr = "和那個(gè)d有啥區(qū)別呢?%f";
- $arg = '456.235645';
- echo sprintf($testStr, $arg);
- echo '<br/><hr/><br/>';
-
-
-
-
-
- $testStr = "和那個(gè)小寫的f有啥區(qū)別呢?%F";
- $arg = '12312316.46898';
- echo sprintf($testStr, $arg);
- echo '<br/><hr/><br/>';
-
-
-
-
-
- $testStr = "將八進(jìn)制數(shù)替換成十進(jìn)制的 %o";
- $arg = '8';
- echo sprintf($testStr, $arg);
- echo '<br/><hr/><br/>';
-
-
-
-
-
- $testStr = "將十六進(jìn)制數(shù)替換成十進(jìn)制的 %o";
- $arg = '456d12';
- echo sprintf($testStr, $arg);
- echo '<br/><hr/><br/>';
-
-
-
-
-
-
- $testStr = "將大寫字母的十六進(jìn)制數(shù)替換成十進(jìn)制的 %o";
- $arg = '456D12';
- echo sprintf($testStr, $arg);
- echo '<br/><hr/><br/>';
-
-
-
-
-
- $string = "這是用來測試的sprintf的字符串( %s ).今天消費(fèi)了%f元.從西二旗到知春路有%d站.上班";
- $arg = '';
- echo sprintf($string, $arg, 234, 10);
- echo '<br/><hr/><br/>';
-
-
- ?>
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈