PHP 彩色文字實(shí)現(xiàn)代碼
更新時(shí)間:2009年06月29日 23:31:19 作者:
最近流行彩字,下面是簡單的實(shí)現(xiàn)代碼。喜歡php的朋友可以看看。
最近流行彩字,下面是簡單的實(shí)現(xiàn)方法:
一.彩字的簡單實(shí)現(xiàn)
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]);
//構(gòu)建圖像
$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);
上面的程序只是表述了一些彩字的基本原理,要實(shí)現(xiàn)更復(fù)雜和美觀的彩字,所要做的只是更換一下字體,改一下字體顏色,添加一些背景圖,再考慮一下緩存等,方法也差不多,朋友們可以自己試試.
二.彩字應(yīng)用
上面的程序生成的彩字是通過"?t=文字"來傳遞的,但需注意的是,這些文字最好用urlencode來編碼,當(dāng)然,長度也應(yīng)該有限制,這不是本文討論的范圍.
另外,生成彩字的程序和傳遞文字的程序都使用utf-8編碼,如果不是,手工轉(zhuǎn)一下..
要使用彩字,只需要用<img src="color.php?t=xxx" />即可,其中,color.php為生成彩字的程序(即上面的程序),xxx為經(jīng)urlencode編碼的文字(用來生成彩字)
三.smarty插件
在smarty的plugins目錄下新建一文件modifier.ubb.php,內(nèi)容如下:
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的實(shí)現(xiàn),更多的ubb標(biāo)簽朋友們可以按方法自己實(shí)現(xiàn),其中的color.php根椐實(shí)際去修改
return preg_replace($ubb,$tohtml,$string);
}
這樣,要顯示彩字,只需在內(nèi)容中加入
[colorfont]文字[/colorfont]
顯示時(shí),在smarty模板中使用ubb修飾符即可,如{$contentubb}
一.彩字的簡單實(shí)現(xiàn)
復(fù)制代碼 代碼如下:
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]);
//構(gòu)建圖像
$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);
上面的程序只是表述了一些彩字的基本原理,要實(shí)現(xiàn)更復(fù)雜和美觀的彩字,所要做的只是更換一下字體,改一下字體顏色,添加一些背景圖,再考慮一下緩存等,方法也差不多,朋友們可以自己試試.
二.彩字應(yīng)用
上面的程序生成的彩字是通過"?t=文字"來傳遞的,但需注意的是,這些文字最好用urlencode來編碼,當(dāng)然,長度也應(yīng)該有限制,這不是本文討論的范圍.
另外,生成彩字的程序和傳遞文字的程序都使用utf-8編碼,如果不是,手工轉(zhuǎn)一下..
要使用彩字,只需要用<img src="color.php?t=xxx" />即可,其中,color.php為生成彩字的程序(即上面的程序),xxx為經(jīng)urlencode編碼的文字(用來生成彩字)
三.smarty插件
在smarty的plugins目錄下新建一文件modifier.ubb.php,內(nèi)容如下:
復(fù)制代碼 代碼如下:
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的實(shí)現(xiàn),更多的ubb標(biāo)簽朋友們可以按方法自己實(shí)現(xiàn),其中的color.php根椐實(shí)際去修改
return preg_replace($ubb,$tohtml,$string);
}
這樣,要顯示彩字,只需在內(nèi)容中加入
[colorfont]文字[/colorfont]
顯示時(shí),在smarty模板中使用ubb修飾符即可,如{$contentubb}
相關(guān)文章
php include,include_once,require,require_once
其實(shí)PHP包含文件的這四個(gè)函數(shù),很多人還是沒完全明白的,雖然用的時(shí)候多,但是具體某些地方該怎么用,用那一個(gè),我就獻(xiàn)丑一把.2008-09-09PHP自定義函數(shù)獲取搜索引擎來源關(guān)鍵字的方法
這篇文章主要介紹了PHP自定義函數(shù)獲取搜索引擎來源關(guān)鍵字的方法,涉及php針對來路頁面URL的分析與判斷技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07使用PHP獲取當(dāng)前url路徑的函數(shù)以及服務(wù)器變量
本篇文章是對使用PHP獲取當(dāng)前url路徑的函數(shù)以及服務(wù)器變量的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06