麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > PHP > 正文

PHP函數之:sprintf()學習筆記

2024-09-04 11:48:40
字體:
來源:轉載
供稿:網友

sprintf()函數在php官方是說把字符串格式化輸出了,下面我就來給各位朋友介紹一站長在學習sprintf()函數時的一些經驗分享,希望此文章能給你帶來幫助.

PHP函數 sprintf() 函數官方定義為:sprintf():把格式式的字符串寫入一個變量中

語法為:sprintf(format,arg1,arg2,arg++);

參數:

format:必須,轉換格式

arg1 :必須,規定插入 format 字符串中第一個%符號處的參數

arg1 :可選,規定插入 format 字符串中第二個%符號處的參數

arg1++:可選,規定插入 format 字符串中第三、四等%符號處的參數

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

%% – 返回百分比符號

%b – 二進制數

%c – 依照 ASCII 值的字符

%d – 帶符號十進制數

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

%u – 無符號十進制數

%f – 浮點數(local settings aware)

%F – 浮點數(not local settings aware)

%o – 八進制數

%s – 字符串

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

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

下面是一些demo,代碼如下:

  1. // 1. %% :把 %% 替換成 % 
  2. $str = '測試一下 %% 這個參數,會被替換成什么'
  3. echo sprintf($str); 
  4. //返回結果: 測試一下 % 這個參數,會被替換成什么(%%被替換成一個%) 
  5.  
  6.  
  7. // 2. %b :該參數只能替換整型數據,如果是浮點型,只會取整數部分,會忽略小數點后面的數據。如果是非整型數據。www.111Cn.net返回 0 
  8. $str = '參數 %b 會替換成二進制數'
  9. $arg = '10'
  10. echo sprintf($str,$arg); 
  11. //返回結果:參數 1010 會替換成二進制數 
  12. $arg = 10.23; 
  13. echo sprintf($str,$arg); 
  14. //返回結果:參數 1010 會替換成二進制數 
  15. $arg = 'abc'
  16. echo sprintf($str,$arg); 
  17. //返回結果:參數 0 會替換成二進制數 
  18.  
  19. // 3. %c 返回字符編碼的ASCII碼 
  20. $arg = 65; 
  21. $str =  "數字 {$arg} 對應的ASCII碼為 %c "
  22. echo sprintf($str,$arg); 
  23. //返回結果:數字 65 對應的ASCII碼為 A 
  24.  
  25. // 4. %d 將一段字符里的%d替換成int型,數據要求同 $b 相同 
  26. $str = 'ID號為 %d '
  27. $arg = -3; 
  28. echo sprintf($str,$arg); 
  29. //返回結果:ID號為 -3 
  30. $arg = 4.5; 
  31. echo sprintf($str,$arg); 
  32. //返回結果:ID號為 4 
  33. $arg = 'abc'
  34. echo sprintf($str,$arg); 
  35. // www.companysz.com返回結果:ID號為 0 
  36.  
  37. // 5. %s - 字符串 
  38. $str = "這是用來測試的sprintf的字符串( %s )。今天消費了%f元。從鐘樓到小寨有%d站。上班"
  39. $arg = '%s'
  40. echo sprintf($str,$arg,6,5); 
  41. //返回結果:這是用來測試的sprintf的字符串( %s )。今天消費了6.000000元。從鐘樓到小寨有5站。上班  

至于其它的參數,大家可以試著測試一下.

下面說一下這個函數的一些用途,比如我們在對一張數據表所有數據做多個字段更新時,如果使用循環更新的話,那是很耗費資源的,這里就要用到我們sprintf()函數了.

在數據庫批量更新時,我一般采用 case then when end 的語法來做,基本語法如:

  1. UPDATA table 
  2.     SET field = CASE id 
  3.         WHEN 1 THEN 'value1' 
  4.         WHEN 2 THEN 'value2' 
  5.         WHEN 3 THEN 'value3' 
  6.     END 
  7. WHERE id IN (1,2,3) 

上面的意思就是說,更新 table 設置 id = 1 的值為 value1, id = 2 的值為 value2 ,id = 3 的值為 value3,這樣參數上面的函數將sql語句結合成這樣SQL語句,只需一條SQL就可以進行批量更新,具體的方法為:

  1. //比如 id 對應的值為以下數組 
  2. $info = array(1=>'張三',2=>'李四',3=>'王五'); 
  3. $ids = implode(',',array_keys($info)) //獲取所有的ID字符串 
  4. //組合SQL 
  5. $sql = "UPDATA user SET username = CASE id"
  6. foreach($info as $id=>$username){ 
  7.      $sql .= sprintf("WHEN %d THEN %s",$id,$username); 
  8. $sql .= "END WHERE id IN ($ids)"
  9. // $model->query($sql) 

 上面就可以完成批量更新的操作,后面的 where子句確保只有3行數據執行.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中文字幕网址 | 午夜视频久久久 | 91成人天堂久久成人 | 韩国精品视频在线观看 | 国产又粗又爽又深的免费视频 | 欧美成人综合视频 | 久久精品视频在线 | 电影一级毛片 | 国产精选久久久 | 色网站免费观看 | 久久精品国产一区二区电影 | 九九夜夜| 国产成人高清在线观看 | 日韩一级毛毛片 | 国产免费一区二区三区最新不卡 | 欧美成人免费 | 国产精品1区 | 久久精品亚洲国产奇米99 | va免费视频 | av免费在线观看不卡 | 精品国产一区二区三 | 国产乱xxxx | 精品一区二区免费视频视频 | 一级性色 | 中文字幕亚洲一区二区三区 | 亚洲精品成人久久久 | 国产一级毛片高清 | 国产亚洲精品一区二区三区 | 中文字幕亚洲一区二区三区 | 亚洲啊v在线观看 | 99影视在线视频免费观看 | 国产91九色 | 国产免费一区二区三区最新不卡 | 亚洲天堂午夜 | 九九热九九爱 | 久久国产亚洲视频 | 久久影院yy6080 | 国产精品自在线拍 | 双性精h调教灌尿打屁股的文案 | 亚洲日本高清 | 国产成人在线免费观看视频 |