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 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 PHP
php 读取文件乱码问题
Feb 20 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
PHP中鲜为人知的10个函数
Feb 28 PHP
php随机取mysql记录方法小结
Dec 27 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
php mysqli查询语句返回值类型实例分析
Jun 29 PHP
PHP实现的数独求解问题示例
Apr 18 PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
php微信扫码支付 php公众号支付
Mar 24 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
图书管理程序(三)
2006/10/09 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
基于jQuery的倒计时插件代码
2011/05/07 Javascript
一个关于jqGrid使用的小例子(行按钮)
2011/11/04 Javascript
THREE.JS入门教程(5)你应当知道的十件事
2013/01/24 Javascript
js+css实现有立体感的按钮式文字竖排菜单效果
2015/09/01 Javascript
利用vue+elementUI实现部分引入组件的方法详解
2017/11/22 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
JavaScript中使用Spread运算符的八种方法总结
2020/06/18 Javascript
vue接口请求加密实例
2020/08/11 Javascript
Python操作RabbitMQ服务器实现消息队列的路由功能
2016/06/29 Python
Python线性回归实战分析
2018/02/01 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
Python 一句话生成字母表的方法
2019/01/02 Python
python的内存管理和垃圾回收机制详解
2019/05/18 Python
python Django中models进行模糊查询的示例
2019/07/18 Python
基于python 取余问题(%)详解
2020/06/03 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
python爬虫搭配起Bilibili唧唧的流程分析
2020/12/01 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
师范大学音乐表演专业求职信
2013/10/23 职场文书
我的大学生活职业生涯规划
2014/01/02 职场文书
继电保护工岗位职责
2014/01/05 职场文书
儿童生日会策划方案
2014/05/15 职场文书
大专毕业生求职信
2014/07/05 职场文书
作风建设年活动总结
2014/08/27 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
2014年监理个人工作总结
2014/12/11 职场文书
感动中国何玥观后感
2015/06/02 职场文书
教师节祝酒词
2015/08/11 职场文书
中学音乐课教学反思
2016/02/18 职场文书
OpenCV全景图像拼接的实现示例
2021/06/05 Python
详解OpenCV获取高动态范围(HDR)成像
2022/04/29 Python
Apache自带的ab压力测试工具的实现
2022/07/23 Servers