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脚本的10个技巧(8)
Oct 09 PHP
WIN98下Apache1.3.14+PHP4.0.4的安装
Oct 09 PHP
php下通过POST还是GET来传值
Jun 05 PHP
php+javascript的日历控件
Nov 19 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
基于php常用正则表达式的整理汇总
Jun 08 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php去除html标记的原生函数详解
Jan 27 PHP
php将字符串转换成16进制的方法
Mar 17 PHP
让你的PHP7更快之Hugepage用法分析
May 31 PHP
php 判断字符串编码是utf-8 或gb2312实例
Nov 01 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 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中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
Div自动滚动到末尾的代码
2008/10/26 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
js实现GIF动图分解成多帧图片上传
2019/10/24 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
Python 的 with 语句详解
2014/06/13 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
python 使用get_argument获取url query参数
2017/04/28 Python
pandas中Timestamp类用法详解
2017/12/11 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
html5开发三八女王节表白神器
2018/03/07 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
高中生自我评价个人范文
2013/11/09 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
中文师范生自荐信
2014/01/30 职场文书
成立公司计划书
2014/05/07 职场文书
学校安全责任书范本
2014/07/23 职场文书
先进党员事迹材料
2014/12/24 职场文书
小学班主任评语
2014/12/29 职场文书
2015年中学总务处工作总结
2015/07/22 职场文书
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python