Chinaunix首页 | 论坛 | 博客
  • 博客访问: 607101
  • 博文数量: 129
  • 博客积分: 8026
  • 博客等级: 中将
  • 技术积分: 1300
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-21 14:39
文章分类

全部博文(129)

文章存档

2011年(1)

2007年(26)

2006年(102)

我的朋友

分类:

2006-07-14 13:21:34

最近流行彩字,下面是简单的实现方法:

一.彩字的简单实现

header("Content-type: image/png");
$text $_GET['t'
];
$font 'STXINGKA.TTF'
//TTF字体
$fontsize 30
;
$size imagettfbbox($fontsize0$font$text); 
//获得字体长宽范围
$dx abs($size[2]-$size[0]) +10
;
$dy abs($size[5]-$size[3
]);
//构建图像
$im imagecreate($dx,$dy
);
imagecolorallocate($im255,255255); 
//背景色
$fontcolor imagecolorallocate($im25500); 
//字体颜色
ImageTTFText($im$fontsize00abs($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}

 

阅读(1980) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~