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的图形函数中显示汉字
Oct 09 PHP
php.ini修改php上传文件大小限制的方法详解
Jun 17 PHP
PHP生成Gif图片验证码
Oct 27 PHP
PHP curl实现抓取302跳转后页面的示例
Jul 04 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
php学习笔记之面向对象
Nov 08 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
php爬取天猫和淘宝商品数据
Feb 23 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
Apr 12 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
PHP基于进程控制函数实现多线程
Dec 09 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实现通过照片获取ip地址
2016/04/26 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
javascript 中that的含义示例介绍
2014/05/14 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
javaScript 事件绑定、事件冒泡、事件捕获和事件执行顺序整理总结
2016/10/10 Javascript
浅谈JavaScript异步编程
2017/01/20 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
简单介绍react redux的中间件的使用
2018/04/06 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
python求斐波那契数列示例分享
2014/02/14 Python
Python科学计算之NumPy入门教程
2017/01/15 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Python实现注册、登录小程序功能
2018/09/21 Python
Python UnboundLocalError和NameError错误根源案例解析
2018/10/31 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
2020/06/01 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
党员培训思想汇报
2014/01/07 职场文书
经营管理策划方案
2014/05/22 职场文书
反腐倡廉剖析材料
2014/09/30 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
委托书格式要求
2015/01/28 职场文书
新闻通讯稿模板
2015/07/22 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
SQL之各种join小结详细讲解
2021/08/04 MySQL
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang