看到sina微博發出的表情,直接就能顯示。正好咱們公司也須要這種效果,我就把代碼貼出來,共享!!express
實現的最終效果:ide
原來的句子是這樣的「[biggrin]法師打發斯蒂芬[fendou]范德薩發生大幅說的」,經過正則來替換「[]」這些內容,「biggrin」和「fendou」是圖片的名字。大概說這麼多!下面直接上代碼:函數
- function format($content,$url=false){
- return preg_replace_callback("/(?:#[^#]*[^#^\s][^#]*#|(\[.+?\]))/is", replaceEmot, $content);
- }
- /*
- * 表情替換
- * @ Lily
- */
- function replaceEmot($data) {
- if(preg_match("/#.+#/i",$data[0])) {
- return $data[0];
- }
- $file = array_pop(explode('[', $data[0]));
- $name = array_shift(explode(']', $file));
- if($name) {
- return preg_replace("/\[.+?\]/i","<img src='/Public/p_w_picpaths/expression/".$name.".gif' />",$data[0]);
- }else {
- return $data[0];
- }
- }
這樣寫好,直接調用format()函數把內容傳過來就能夠實現你要的效果了!url