图象函数中的中文显示


Posted in PHP onOctober 09, 2006

把GB码转换到UTF8,php中TTF支持UTF8编码的非ASCII字符输出.在分析这段代码之后,发现可以实现中文与ASCII混合输出图象,这样在我们操作图象函数时可以更方便.
代码如下:
<?

function gb2utf8($gb)
{
if(!trim($gb))
return $gb;
$filename="gb2312.txt";
$tmp=file($filename);
$codetable=array();
while(list($key,$value)=each($tmp))
$codetable[hexdec(substr($value,0,6))]=substr($value,7,6);

$utf8="";
while($gb)
{
if (ord(substr($gb,0,1))>127)
{
$this=substr($gb,0,2);
$gb=substr($gb,2,strlen($gb)-2);
$utf8.=u2utf8(hexdec($codetable[hexdec(bin2hex($this))-0x8080]));
}
else
{
$this=substr($gb,0,1);
$gb=substr($gb,1,strlen($gb)-1);
$utf8.=u2utf8($this);
}
}

/*$ret="";
for($i=0;$i<strlen($utf8);$i+=3)
$ret.=chr(substr($utf8,$i,3));

return $ret;*/

return $utf8;
}
function u2utf8($c)
{
/*for($i=0;$i<count($c);$i++)*/
$str="";
if ($c < 0x80) {
$str.=$c;
}
else if ($c < 0x800) {
$str.=chr(0xC0 | $c>>6);
$str.=chr(0x80 | $c & 0x3F);
}
else if ($c < 0x10000) {
$str.=chr(0xE0 | $c>>12);
$str.=chr(0x80 | $c>>6 & 0x3F);
$str.=chr(0x80 | $c & 0x3F);
}
else if ($c < 0x200000) {
$str.=chr(0xF0 | $c>>18);
$str.=chr(0x80 | $c>>12 & 0x3F);
$str.=chr(0x80 | $c>>6 & 0x3F);
$str.=chr(0x80 | $c & 0x3F);
}
return $str;
}
?>

--------------------------------------------
<?
Header ("Content-type: image/jpeg");
$im = imagecreate (800, 400);
$black = ImageColorAllocate ($im, 0, 0, 0);
$white = ImageColorAllocate ($im, 255, 255, 255);
include("gb2utf8.php");
$str=gb2utf8("aaa中过32434");
ImageTTFText ($im, 90, 10, 110, 300, $white, "/usr/share/fonts/default/TrueType/simsun.ttc",
$str);

ImageJPEG ($im);
ImageDestroy ($im);

?>

PHP 相关文章推荐
php intval的测试代码发现问题
Jul 27 PHP
模板引擎正则表达式调试小技巧
Jul 20 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
Jun 17 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
PHP中unset,array_splice删除数组中元素的区别
Jul 28 PHP
如何在HTML 中嵌入 PHP 代码
May 13 PHP
简单谈谈favicon
Jun 10 PHP
joomla组件开发入门教程
May 04 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
轻松掌握php设计模式之访问者模式
Sep 23 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
Laravel框架路由管理简单示例
May 07 PHP
使用php+xslt在windows平台上
Oct 09 #PHP
配置PHP使之能同时支持GIF和JPEG
Oct 09 #PHP
PHP输出控制功能在简繁体转换中的应用
Oct 09 #PHP
PHP 增加了对 .ZIP 文件的读取功能
Oct 09 #PHP
如何去掉文章里的 html 语法
Oct 09 #PHP
如何分别全角和半角以避免乱码
Oct 09 #PHP
玩转虚拟域名◎+ .
Oct 09 #PHP
You might like
header()函数使用说明
2006/11/23 PHP
php项目打包方法
2008/02/18 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
部署PHP时的4个配置修改说明
2015/10/19 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
JavaScript 函数式编程的原理
2009/10/16 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Python3解释器知识点总结
2019/02/19 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
Python程序慢的重要原因
2020/09/04 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
Css3实现无缝滚动防抖
2020/09/14 HTML / CSS
phpquery中文手册
2021/03/18 PHP
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
商场中秋节广播稿
2014/01/17 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
会计工作检讨书
2015/02/19 职场文书
入党介绍人意见范文
2015/06/01 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
Python Matplotlib绘制动画的代码详解
2022/05/30 Python