小編給大家分享一下php中sprintf函數(shù)怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
公司主營(yíng)業(yè)務(wù):做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出永仁免費(fèi)做網(wǎng)站回饋大家。
sprintf()是PHP中的內(nèi)置函數(shù),可以用于把字符串進(jìn)行多種類型的格式化,然后返回已格式化的字符串;在處理xml數(shù)據(jù)格式時(shí),需要用到該函數(shù)來(lái)格式化。語(yǔ)法格式“sprintf(format,arg1,arg2,arg++)”。
PHP sprintf() 函數(shù)
sprintf() 函數(shù)把格式化的字符串寫(xiě)入一個(gè)變量中。
用處:把字符串進(jìn)行多種類型的格式化
用于:處理xml數(shù)據(jù)格式時(shí),需要用到他來(lái)格式化等等
arg1、arg2、++ 參數(shù)將被插入到主字符串中的百分號(hào)(%)符號(hào)處。該函數(shù)是逐步執(zhí)行的。在第一個(gè) % 符號(hào)處,插入 arg1,在第二個(gè) % 符號(hào)處,插入 arg2,依此類推。
注釋:如果 % 符號(hào)多于 arg 參數(shù),則您必須使用占位符。占位符被插入到 % 符號(hào)之后,由數(shù)字和 "\$" 組成。
語(yǔ)法:
sprintf(format,arg1,arg2,arg++)
返回值:返回已格式化的字符串。
示例:
這什么意思呢
要點(diǎn):
%s = %符號(hào)和后面屬性符號(hào)(s)總稱為插入標(biāo)記組合,也就是把后面準(zhǔn)備進(jìn)行格式化的值($str1)替換在這個(gè)位置
hello = 這個(gè)單詞就是很多人蒙蔽的地方,告訴你這個(gè)什么代表也沒(méi)有,就單純的代表一個(gè)hello,用于分割或者修飾用,一般用[ %s ]、<%s>這樣格式化出來(lái)后就直接在標(biāo)簽里
記住,一個(gè)%標(biāo)記符后面只有一個(gè)類型屬性(比如s),s是什么上面有,以字符串的方式格式化
那么多個(gè)值怎么格式化一起呢?
看:
%s為一個(gè)標(biāo)記,兩個(gè)%s%s這樣寫(xiě)卻是錯(cuò)誤的,每個(gè)%s必須標(biāo)記鍵位,不然我怎么知道都代表格式化后面的哪個(gè)$str呢,所以有個(gè)特別的語(yǔ)法
%1\$%2\$ 解釋:%1表示格式化sprintf("%1\$%2\$",''$str1","$str2")中對(duì)應(yīng)的$str1,那么%2自然表示格式化$str2,\$是代表有多個(gè)值準(zhǔn)備格式化,所以每個(gè)%1和%2或者還有%3的標(biāo)記后都要加這個(gè)符號(hào)代表一行中有多個(gè)標(biāo)記,如果只有一個(gè)標(biāo)記就不用\$了占位符了,記住$str2、$str3是可選,也就是可以不格式化這么多
講個(gè)特殊的例子
sprintf("%'x13.2f",$c);
是什么意思,f是浮點(diǎn)數(shù),第一步按照格式 %
'
(補(bǔ)位值) 寬度值 格式化類型 這三部分,語(yǔ)法之間必須緊挨著不能用空格
必須解釋一下何為補(bǔ)位值:就是設(shè)定的寬度超出了,用這個(gè)值來(lái)填上
解釋一下,補(bǔ)位值只有設(shè)置寬度超出了目標(biāo)值才能用
所以就是用x補(bǔ)位,13為總寬度,2為小數(shù)點(diǎn)后的寬度,f為格式化類型,別急我會(huì)解釋
'
號(hào)(單引號(hào))代表接下來(lái)要用補(bǔ)位類型
為什么他能識(shí)別x是補(bǔ)位值呢,因?yàn)榍懊嬗?'
號(hào),
為什么他能識(shí)別哪幾位是哪種類型呢,他是這樣識(shí)別的,按順序從先從兩頭的字符開(kāi)始識(shí)別是什么類型,補(bǔ)位值肯定是單數(shù)位,不可能一個(gè)位置補(bǔ)兩個(gè)數(shù)吧,所以左邊第一位x是補(bǔ)位值,右邊第一位是格式化類型,然后中間的自然是寬度值
第二,為什么小數(shù)點(diǎn) 后還有一個(gè)屬性 ,因?yàn)檫@是f(浮點(diǎn)型),必須設(shè)置小數(shù)點(diǎn)后有幾位,不能小數(shù)后面不能設(shè)置了吧,那浮點(diǎn)數(shù)意義何在呢
不要覺(jué)得煩,每個(gè)例子都是濃縮出來(lái)的
整數(shù)補(bǔ)位:
這就是整數(shù)補(bǔ)位,還是一樣
第一步按照格式 % '(補(bǔ)位值) 寬度值 格式化類型 這三部分
0是補(bǔ)位值 7是寬度值 s自然是格式化類型
還有一種最重要的例子
這個(gè)第一步 [ ] 僅僅只是修飾,不用理解
第二步,沒(méi)有 ' 號(hào),證明沒(méi)有補(bǔ)位,無(wú)需添加補(bǔ)位值
所以語(yǔ)法格式為 : % 寬度值 格式化類型 這兩部分
第一二行解釋如下:
第一個(gè)寬度為6,但是$c=1234 ,只有4個(gè)字符,所以寬度不夠,所以右邊自動(dòng)擴(kuò)充(擴(kuò)充再多也只顯示一個(gè)空格位置),為什么在右邊擴(kuò)充,因?yàn)閷挾惹坝袀€(gè) - 號(hào),代表補(bǔ)位方向相反,如在補(bǔ)位值前加-,自然從右邊開(kāi)始補(bǔ)位
下面為什么沒(méi)變化,因?yàn)閷挾日靡恢拢皇茄a(bǔ)位的方向改變了
第三行解釋如下:
不要被蒙蔽了,語(yǔ)法結(jié)構(gòu)還是一樣 % 寬度值 格式化類型 這兩部分
沒(méi)有 ' 號(hào),證明沒(méi)有補(bǔ)位,無(wú)需添加補(bǔ)位值
所以4.2依舊是寬度值
只是小數(shù)點(diǎn)左邊的4代表總寬度,右邊的2代表只顯示2位出來(lái),所以又空缺了兩個(gè),所以左邊開(kāi)始擴(kuò)充兩個(gè)空位,為什么只顯示一個(gè)空格上一段說(shuō)了,再說(shuō)一次吧擴(kuò)充再多也只顯示一個(gè)空格位置。默認(rèn)從左邊開(kāi)始
以上是“php中sprintf函數(shù)怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!