程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP入門知識 >> PHP smarty的ubb插件實現彩字

PHP smarty的ubb插件實現彩字

編輯:PHP入門知識

最近流行彩字,下面是簡單的實現方法:

一.彩字的簡單實現

以下為引用的內容:
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編碼,如果不是,手工轉一下..
要使用彩字,只需要用<img src="color.php?t=xxx" />即可,其中,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(
        '<b>\\1</b>',
        '<a href="\\1">\\2</a>',
        '"<img src=\'color.php?t=".urlencode("\\1")."\'/>"'
    );
    //以上只是演ubb的實現,更多的ubb標簽朋友們可以按方法自己實現,其中的color.php根椐實際去修改
    return preg_replace($ubb,$tohtml,$string);
}

這樣,要顯示彩字,只需在內容中加入
[colorfont]文字[/colorfont]
顯示時,在smarty模板中使用ubb修飾符即可,如{$content|ubb}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved