用正則替換文章中的表情(例如微博)

看到sina微博發出的表情,直接就能顯示。正好我們公司也需要這種效果,我就把代碼貼出來,共享!!

實現的最終效果:

原來的句子是這樣的“[biggrin]法師打發斯蒂芬[fendou]范德薩發生大幅說的”,通過正則來替換“[]”這些內容,“biggrin”和“fendou”是圖片的名字。大概說這麼多!下面直接上代碼:

  1. function format($content,$url=false){ 
  2.     return preg_replace_callback("/(?:#[^#]*[^#^\s][^#]*#|(\[.+?\]))/is", replaceEmot, $content); 
  3.  
  4. /* 
  5.  *  表情替換 
  6.  *  @ Lily  
  7.  */  
  8. function replaceEmot($data) { 
  9.     if(preg_match("/#.+#/i",$data[0])) { 
  10.         return $data[0]; 
  11.     } 
  12.     $file = array_pop(explode('['$data[0])); 
  13.     $name = array_shift(explode(']'$file)); 
  14.     if($name) { 
  15.         return preg_replace("/\[.+?\]/i","<img src='/Public/images/expression/".$name.".gif' />",$data[0]); 
  16.     }else { 
  17.         return $data[0]; 
  18.     } 

這樣寫好,直接調用format()函數把內容傳過來就可以實現你要的效果了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章