最近流行彩字,下面是簡單的實現方法:
一.彩字的簡單實現
以下為引用的內容: header("content-type: image/png"); $text = $_get[t]; $font = stxingka.ttf; //ttf字型 $fontsize = 30; $size = imagettfbbox($fontsize, 0, $font, $text); //獲得字型長寬範圍 $dx = abs($size[2]-$size[0]) +10; $dy = abs($size[5]-$size[3]); //構建映像 $im = imagecreate($dx,$dy); imagecolorallocate($im, 255,255, 255); //背景色 $fontcolor = imagecolorallocate($im, 255, 0, 0); //字型顏色 imagettftext($im, $fontsize, 0, 0, abs($size[5]), $fontcolor, $font, $text); imagepng($im); imagedestroy($im); |
上面的程式只是表述了一些彩字的基本原理,要實現更複雜和美觀的彩字,所要做的只是更換一下字型,改一下字型顏色,添加一些背景圖,再考慮一下緩衝等,方法也差不多,朋友們可以自己試試.
二.彩字應用
上面的程式產生的彩字是通過"?t=文字"來傳遞的,但需注意的是,這些文字最好用urlencode來編碼,當然,長度也應該有限制,這不是本文討論的範圍.
另外,產生彩字的程式和傳遞文字的程式都使用utf-8編碼,如果不是,手工轉一下..
要使用彩字,只需要用即可,其中,color.php為產生彩字的程式(即上面的程式),xxx為經urlencode編碼的文字(用來產生彩字)
三.smarty外掛程式
在smarty的plugins目錄下建立一檔案modifier.ubb.php,內容如下:
以下為引用的內容: function smarty_modifier_ubb($string){ $ubb = array( /[b](.+?)[/b]/i, #加粗 /[url=(.+?)](.+?)[/url]/i, #url /[colorfont](.+?)[/colorfont]/ie #彩字,注意,要加e修飾符 ); $tohtml = array( \1, \2, "" ); //以上只是演ubb的實現,更多的ubb標籤朋友們可以按方法自己實現,其中的color.php根椐實際去修改 return preg_replace($ubb,$tohtml,$string); } |
這樣,要顯示彩字,只需在內容中加入
[colorfont]文字[/colorfont]
顯示時,在smarty模板中使用ubb修飾符即可,如{$content|ubb}
http://www.bkjia.com/PHPjc/531680.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/531680.htmlTechArticle最近流行彩字,下面是簡單的實現方法: 一.彩字的簡單實現 以下為引用的內容: header("content-type: image/png"); $text = $_get[t]; $font = stxingka.ttf;...