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控制用户的浏览器--ob*函数的使用说明
Mar 16 PHP
php学习 字符串课件
Jun 15 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
PHP 简单日历实现代码
Oct 28 PHP
php 冒泡排序 交换排序法
May 10 PHP
浅析php header 跳转
Jun 17 PHP
php header功能的使用
Oct 28 PHP
PHP网站开发中常用的8个小技巧
Feb 13 PHP
PHP内存缓存功能memcached示例
Oct 19 PHP
Smarty3配置及入门语法
Feb 22 PHP
php+ajax 文件上传代码实例
Mar 18 PHP
php+websocket 实现的聊天室功能详解
May 27 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连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
PHP 使用memcached简单示例分享
2015/03/05 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
浅析JavaScript访问对象属性和方法及区别
2015/11/16 Javascript
angular分页指令操作
2017/01/09 Javascript
Angular组件化管理实现方法分析
2017/03/17 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
jQuery+SpringMVC中的复选框选择与传值实例
2018/01/08 jQuery
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
Python实现Tab自动补全和历史命令管理的方法
2015/03/12 Python
Python新手实现2048小游戏
2015/03/31 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
python实现高斯投影正反算方式
2020/01/17 Python
Python统计学一数据的概括性度量详解
2020/03/03 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
美国知名男士服饰品牌:Brooks Brothers(布克兄弟)
2016/08/25 全球购物
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python