PHP smarty的ubb外掛實現彩字

phphot發表於2008-02-20



一.彩字的簡單實現

上面的程式只是表述了一些彩字的基本原理,要實現更復雜和美觀的彩字,所要做的只是更換一下字型,改一下字型顏色,新增一些背景圖,再考慮一下快取等,方法也差不多,朋友們可以自己試試.

二.彩字應用

上面的程式生成的彩字是通過"?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}

相關文章