图象函数中的中文显示


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 header函数分析详解
Aug 06 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 PHP
destoon安装出现Internal Server Error的解决方法
Jun 21 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
Jul 21 PHP
Laravel中间件实现原理详解
Oct 09 PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
在Laravel中使用DataTables插件的方法
May 29 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 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
模仿OSO的论坛(四)
2006/10/09 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
PHP判断字符串长度的两种方法很实用
2015/09/22 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
javascript parseInt() 函数的进制转换注意细节
2013/01/08 Javascript
IE下写xml文件的两种方式(fso/saveAs)
2013/08/05 Javascript
JavaScript表单通过正则表达式验证电话号码
2014/03/14 Javascript
判断iframe里的页面是否加载完成
2014/06/06 Javascript
简介AngularJS中使用factory和service的方法
2015/06/17 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
解决vue单页面应用打包后相对路径、绝对路径相关问题
2020/08/14 Javascript
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
Pycharm+Python+PyQt5使用详解
2019/09/25 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
python快速安装OpenCV的步骤记录
2021/02/22 Python
马耳他航空公司官方网站:Air Malta
2019/05/15 全球购物
什么是聚集索引和非聚集索引
2012/01/17 面试题
编程输出如下图形
2013/11/24 面试题
生物科学系大学生的自我评价
2013/12/20 职场文书
采购主管岗位职责
2014/02/01 职场文书
书法比赛获奖感言
2014/02/10 职场文书
初中三年毕业生的自我评价分享
2014/02/14 职场文书
社会调查研究计划书
2014/05/01 职场文书
工作求职信
2014/07/04 职场文书
公司承诺函范文
2015/01/21 职场文书
教师节随笔
2015/08/15 职场文书
2016年情人节广告语
2016/01/28 职场文书
python批量创建变量并赋值操作
2021/06/03 Python