作者:杨忠勋
专业:计算机软件开发及应用
语言能力:TOFEL633 GRE2140
Email:zhongxunyang@yahoo.com.cn
随着网上中文论坛的火暴,很多人都希望能拥有一个体现个性的签名图片,各种签名图片层出不穷。其中Danasoft.com提供的签名图片以其可爱的卡通图像,可以随机出现的引语,实用的功能(可以获取浏览者的IP地址,所使用的操作系统,浏览器种类和版本等)迅速获得了各国网友的青睐,已经被翻译成了十几种语言。但遗憾的是一直都没有中文版。
受Danasoft.com的委托,为其开发的论坛签名制作一中文版,原论坛签名图片如下
http://www.danasoft.com/vipersig.jpg
因为在PHP中不支持中文显示,只能把要显示的中文转换成unicode码。所以 第一步 就先来做这个转换,于是我写了一个Unicode转换函数,其中用到了iconv()函数。转换函数具体如下:
function conv($instring) {
$outstring="";//定义输出变量
$max=strlen($instring);//获取输入字符串的长度
for($i=0;$i<$max;$i++){
$h=ord($instring[$i]);
if($h>=160 && $i<$max-1){
$outstring.="&#".base_convert(bin2hex(iconv("gb2312","ucs-2",substr ($instring,$i,2))),16,10).";";//进行unicode的转换
$i++;
}else{
$outstring.=$instring[$i];
}
}
return $outstring;//返回转换后的字符串
}
有了转换函数以后, 第二步 就需要将要显示的中文翻译成unicode码,比如这是特权不是权利,翻译成unicode码就是"这是特权,不是权利!",具体如何转换,请参考相应资料。
现在就到了 最后一步 了,也是最简单的一步,只需要将程序中的待显示的字符串变量都加上conv函数就可以了。比如在程序中使用了imagettfbox()函数,用来显示签名图片底部的动态引语。原程序如下
imagettfbbox($fontsize, $textangle, $fontfile, $line);
在此处,将imagettfbox的参数修改为
imagettfbbox($fontsize, $textangle, $fontfile, conv($line));
好了,到此为止,汉化Danasoft.com论坛签名的工作就结束了。汉化后的Danasoft.com论坛签名已经在Danasoft.com的官方网站公布,可用如下地址查看:
http://www.danasoft.com/sig-chi.jpg