多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP sprintf() 函數使用方法詳解

PHP sprintf() 函數使用方法詳解

來源:程序員人生   發布時間:2014-02-17 08:32:04 閱讀次數:2661次

我們知道sprintf() 函數把格式化的字符串寫寫入一個變量中,我們經常會看到這類代碼了,下面我來介紹sprintf() 函數使用方法,有需要的朋友可參考參考.

用法

sprintf(format,arg1,arg2,arg++)

說明

參數 format 是轉換的格式,以百分比符號 ("%") 開始到轉換字符結束.下面的可能的 format 值:

•%% - 返回百分比符號

•%b - 二進制數

•%c - 依照 ASCII 值的字符

•%d - 帶符號十進制數

•%e - 可續計數法(比如 1.5e+3)

•%u - 無符號十進制數

•%f - 浮點數(local settings aware)

•%F - 浮點數(not local settings aware)

•%o - 八進制數

•%s - 字符串

•%x - 十六進制數(小寫字母)

•%X - 十六進制數(大寫字母)

arg1, arg2, ++ 等參數將插入到主字符串中的百分號 (%) 符號處.該函數是逐步執行的.在第一個 % 符號中,插入 arg1,在第二個 % 符號處,插入 arg2,依此類推.

我在微信開放平臺會看到如下實例代碼如下:

  1. $postObj = simplexml_load_string($postStr'SimpleXMLElement', LIBXML_NOCDATA); 
  2.                 $fromUsername = $postObj->FromUserName; 
  3.                 $toUsername = $postObj->ToUserName; 
  4.                 $keyword = trim($postObj->Content); 
  5.                 $time = time(); 
  6.     $msgType = "text"
  7.                 $textTpl = "<xml> 
  8.        <ToUserName><![CDATA[%s]]></ToUserName> 
  9.        <FromUserName><![CDATA[%s]]></FromUserName> 
  10.        <CreateTime>%s</CreateTime> 
  11.        <MsgType><![CDATA[%s]]></MsgType> 
  12.        <Content><![CDATA[%s]]></Content> 
  13.        <FuncFlag>0</FuncFlag> 
  14.        </xml>";              
  15.     if(!emptyempty$keyword )) 
  16.                 { 
  17.                  
  18.                  $contentStr = $this->keyrep($keyword); 
  19.      if(  emptyempty($contentStr) ) 
  20.      { 
  21.       $contentStr ="你是故意的吧,沒文化真可怕";//你是故意的吧,沒文化真可怕; 
  22.      } 
  23.      //$contentStr = @iconv('UTF-8','gb2312',$keyword); 
  24.                  $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr); 
  25.                  echo $resultStr
  26.       
  27.                 }else
  28.                  $contentStr = '沒文化真可怕,居然不會打字!';//$this->keyrep($keyword); 
  29.                  //$contentStr = @iconv('UTF-8','gb2312',$keyword); 
  30.      $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr); 
  31.                  echo $resultStr
  32.                 } 

上面用到的是xml中了,下面再看一個網友寫的例子

實例代碼如下:

  1. <?php 
  2.  /** 
  3.   *        sprintf()函數使用 
  4.   *        @date 2012-12-17 
  5.   *        @author cntnn11 
  6.   */ 
  7.   /** 
  8.   *        手冊定義:函數把格式化的字符串寫寫入一個變量中. 
  9.   *        他的可識別的格式 
  10.   *            %% - 返回百分比符號 
  11.   *            %b - 二進制數 
  12.   *            %c - 依照 ASCII 值的字符 
  13.   *            %d - 帶符號十進制數 
  14.   *            %e - 科學計數法(比如 1.5e+3) 
  15.   *            %u - 無符號十進制數 
  16.   *            %f - 浮點數(local settings aware) 
  17.   *            %F - 浮點數(not local settings aware) 
  18.   *            %o - 八進制數 
  19.   *            %s - 字符串 
  20.   *            %x - 十六進制數(小寫字母) 
  21.   *            %X - 十六進制數(大寫字母) 
  22.   *        sprintf($str, arg1, arg2, arg3 ...); 
  23.  */ 
  24.  
  25.  /** 
  26.  *    1.    %% 
  27.  *        把%%替換成% 
  28.  */ 
  29.  $testStr    = '測試下%%這個參數.會被替換成什么呢'
  30.  echo sprintf($testStr),'<br/>'
  31.  //-> 測試下%這個參數.會被替換成什么呢; 
  32.  //只剩下一個%了 
  33.  //看來還真的只是返回一個‘%’.但是實際應用中該怎么用呢? 
  34.  //我也不知道~ 
  35.  echo '<br/><hr/><br/>'
  36.  /** 
  37.  *    2.    %b  
  38.  *        該參數只能替換整型數據.如果是浮點型,那么他只會取整數部分.小數點后邊的會忽略 
  39.  *        如果是一個非整型數據,那么返回 0  
  40.  */ 
  41.  $testStr    = '聽說%b會替換成二進制數,真的嗎?'
  42.  $arg        = '10'
  43.  echo sprintf($testStr$arg),'<br/>'
  44.  //-> 1010;    $arg=10;    真的替換了! 
  45.  //-> 101;    $arg=4.5 
  46.  //-> 0;        $arg=str/bool... 
  47.  echo '<br/><hr/><br/>'
  48.  
  49.  /** 
  50.  *    3.    %c 返回字符編碼的ASCII碼 
  51.  *        TIP:[他不是返回ASCII碼] 
  52.  *        $arg接受一個int傳入即ASCII的數字值,然后返回該值對應的字符 
  53.  */ 
  54.  $testStr    = '我們來測試下 %c : 試試看能返回ASCII碼嗎'
  55.  $arg    = '122'
  56.  echo sprintf($testStr$arg); 
  57.  //-> A;    $arg=65; 
  58.  //-> z; $arg=122 
  59.  echo '<br/><hr/><br/>'
  60.  /** 
  61.   *    4. %d 將一段字符里的%d替換成int型 
  62.   *        TIP:這里可以是任意一個int整型. 
  63.   *            如果是一個浮點數據,那么只會替換整數部分 
  64.   *            如果是非數字的,那么會替換成0 
  65.   */ 
  66.  $testStr    = "這是一個ID,ID號是%d,"
  67.  $arg        = '-4'
  68.  echo sprintf($testStr$arg); 
  69.  //-> 4;    $arg=4.5 
  70.  //-> 0; $arg=[a-zA-Zs]; 
  71.  echo '<br/><hr/><br/>'
  72.  
  73.  /** 
  74.   *    5.    %e 科學計數法 
  75.   *        TIP:將一段很長很長的int整型數據以科學計數法的形式呈現 
  76.   *            同%d,該函數同樣會忽略掉小數點后面的,任何非數值數據替換成0 
  77.  */ 
  78.  $testStr    = "我很長,有N多位... %e"
  79.  $arg        = '46498464654864564642449463699789789313'
  80.  echo sprintf($testStr$arg); 
  81.  //-> 4.649846e+14;    $arg=464984646548645.64642449463699789789313 
  82.  //-> 0.000000e+0; $arg=asdfasdf; 
  83.  echo '<br/><hr/><br/>'
  84.  
  85.  /** 
  86.   *    5.    %u - 無符號十進制數 
  87.   *        不明白...如果有是負數,他的值不知道是啥值 
  88.  */ 
  89.  $testStr    = "我是無符號的十進制數... %u"
  90.  $arg        = '456'
  91.  echo sprintf($testStr$arg); 
  92.  echo '<br/><hr/><br/>'
  93.  
  94.  /** 
  95.   *    6.    %f - 浮點數(local settings aware) 
  96.   *            難道和%d是相反的? 
  97.   *                這個會返回一個浮點數,并且小數點后面只有固定的6位 
  98.   *                字符串同樣為 0 ; 
  99.  */ 
  100.  $testStr    = "和那個d有啥區別呢?%f"
  101.  $arg        = '456.235645'
  102.  echo sprintf($testStr$arg); 
  103.  echo '<br/><hr/><br/>'
  104.  
  105.  /** 
  106.   *    7.    %F - 浮點數(not local settings aware) 
  107.   *        難道和%f是相反的?怎么和小f沒區別?不會吧 
  108.   */ 
  109.  $testStr    = "和那個小寫的f有啥區別呢?%F"
  110.  $arg        = '12312316.46898'
  111.  echo sprintf($testStr$arg); 
  112.  echo '<br/><hr/><br/>'
  113.  
  114.  /** 
  115.   *    8.    %o - 八進制數 
  116.   *        同%d一樣.只不過參數傳入一個八進制數值 
  117.   */ 
  118.  $testStr    = "將八進制數替換成十進制的 %o"
  119.  $arg        = '8'
  120.  echo sprintf($testStr$arg); 
  121.  echo '<br/><hr/><br/>'
  122.  
  123.  /** 
  124.   *    9.    %x - 十六進制數(小寫字母) 
  125.   *        同%d/%o一樣.只不過參數傳入一個小寫字母的十六進制數值 
  126.   */ 
  127.  $testStr    = "將十六進制數替換成十進制的 %o"
  128.  $arg        = '456d12'
  129.  echo sprintf($testStr$arg); 
  130.  echo '<br/><hr/><br/>'
  131.  
  132.  /** 
  133.   *    10.    %X - 十六進制數(大寫字母) 
  134.   *        同%d/%o/%x一樣.只不過參數傳入一個大寫字母的十六進制數值 
  135.   *        貌似%x %X兩個字母大小寫沒區別... 
  136.   */ 
  137.  $testStr    = "將大寫字母的十六進制數替換成十進制的 %o"
  138.  $arg        = '456D12'
  139.  echo sprintf($testStr$arg); 
  140.  echo '<br/><hr/><br/>'
  141.  
  142.  /** 
  143.   *    11.    %s - 字符串 
  144.   *        用你傳入的字符串替換掉%s 
  145.   */ 
  146.  $string    = "這是用來測試的sprintf的字符串( %s ).今天消費了%f元.從西二旗到知春路有%d站.上班"
  147.  $arg    = ''
  148.  echo sprintf($string$arg, 234, 10); 
  149.  echo '<br/><hr/><br/>'
  150.  
  151.    
  152.   ?> 
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产肥妇 | 一区二区三区四区国产精品 | 欧美一级欧美三级在线观看 | 老司机福利免费 | 老司机成人 | 最近中文字幕视频 | 女男羞羞视频网站免费 | 欧美成人午夜精品一区二区 | 亚洲欧美一级视频 | 亚洲精品一区 | 毛片在线播放观看日本 | 91sao国产在线观看 | free性欧美极度另类性性欧美 | 精品91 | 午夜在线影院 | 中文字幕爱爱 | 国产午夜亚洲精品一级在线 | 91色视频网站 | 麻豆影视视频高清在线观看 | 国产aⅴ精品一区二区三区久久 | 宅男看片午夜大片啪啪mv | 国产精品第| 中文字幕 日本 | 男女羞羞视频网站 | 青草欧美 | 久久春色| a网站| 亚洲成a人片在线观看www流畅 | 国产一区二区三区在线看 | 国产精品久久亚洲一区二区 | 免费91最新地址永久入口 | 欧美一级大黄特黄毛片视频 | 韩日一区二区三区 | 在线亚洲日产一区二区 | 中文字幕免费在线视频 | 特级黄aaaaaaaaa毛片 | 日本免费高清视频二区 | 色淫影院 | 亚洲特级aaaaaa毛片 | 日本h在线精品免费观看 | 高清欧美在线三级视频 |