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

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

實現的最終效果:ide

原來的句子是這樣的「[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/p_w_picpaths/expression/".$name.".gif' />",$data[0]); 
  16.     }else { 
  17.         return $data[0]; 
  18.     } 

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

相關文章
相關標籤/搜索