PHP 彩色文字实现代码


Posted in PHP onJune 29, 2009

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

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修饰符即可,如{$contentubb}
PHP 相关文章推荐
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
May 02 PHP
PHP is_dir() 判断给定文件名是否是一个目录
May 10 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
7个鲜为人知却非常实用的PHP函数
Jul 01 PHP
PHP设置进度条的方法
Jul 08 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
May 28 PHP
PHP序列化的四种实现方法与横向对比
Nov 29 PHP
phpfpm的作用和用法
Oct 10 PHP
基于php伪静态的实现方法解析
Jul 31 PHP
php自动加载代码实例详解
Feb 26 PHP
php 原生分页
Apr 01 PHP
php 过滤危险html代码
Jun 29 #PHP
php 图片上添加透明度渐变的效果
Jun 29 #PHP
需要发散思维学习PHP
Jun 29 #PHP
PHP HTML代码串 截取实现代码
Jun 29 #PHP
PHP 网页过期时间的控制代码
Jun 29 #PHP
PHP 超链接 抓取实现代码
Jun 29 #PHP
PHP 文件上传功能实现代码
Jun 24 #PHP
You might like
PHP 文件缓存的性能测试
2010/04/25 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
类似CSDN图片切换效果脚本
2009/09/17 Javascript
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
JavaScript代码复用模式详解
2014/11/07 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
js实现select下拉框菜单
2015/12/08 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
Python兔子毒药问题实例分析
2015/03/05 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
Scrapy爬虫实例讲解_校花网
2017/10/23 Python
Python中单例模式总结
2018/02/20 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
Python调用服务接口的实例
2019/01/03 Python
python mysql断开重连的实现方法
2019/07/26 Python
Python如何读取、写入CSV数据
2020/07/28 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
css3 实现圆形旋转倒计时
2018/02/24 HTML / CSS
HTML5中的Web Notification桌面右下角通知功能的实现
2018/04/19 HTML / CSS
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
班主任班级寄语大全
2014/04/04 职场文书
商铺消防安全责任书
2014/07/29 职场文书
单位活动策划方案
2014/08/17 职场文书
应届生简历自我评价
2015/03/11 职场文书
升学宴来宾致辞
2015/07/27 职场文书