<?php
function gb2utf8($gb) {
if (!trim($gb)) return $gb;
$filename = "http://www.ugain.org/utilities/gb-utf8.table";
$tmp = file($filename);
$codetable = array();
while (list($key, $value) = each($tmp)) $codetable[hexdec(substr($value, 0, 6))] = substr($value, 7, 6);
$ret = "";
$utf8 = "";
while ($gb) {
if (ord(substr($gb, 0, 1)) > 127) {
$this = substr($gb, 0, 2);
$gb = substr($gb, 2, strlen($gb));
$utf8 = u2utf8(hexdec($codetable[hexdec(bin2hex($this)) - 0x8080]));
for ($i = 0;$i < strlen($utf8);$i += 3)
$ret .= chr(substr($utf8, $i, 3));
} else {
$ret .= substr($gb, 0, 1);
$gb = substr($gb, 1, strlen($gb));
}
}
return $ret;
}function u2utf8($c) {
for ($i = 0;$i < count($c);$i++)
$str = "";
if ($c < 0x80) {
$str .= $c;
} else if ($c < 0x800) {
$str .= (0xC0 | $c >> 6);
$str .= (0x80 | $c & 0x3F);
} else if ($c < 0x10000) {
$str .= (0xE0 | $c >> 12);
$str .= (0x80 | $c >> 6 & 0x3F);
$str .= (0x80 | $c & 0x3F);
} else if ($c < 0x200000) {
$str .= (0xF0 | $c >> 18);
$str .= (0x80 | $c >> 12 & 0x3F);
$str .= (0x80 | $c >> 6 & 0x3F);
$str .= (0x80 | $c & 0x3F);
}
return $str;
}
function word2transgif($word, $imgwidth=400, $imgheight=30, $fontsize=12, $font=null){
function_exists('imagegif')?null:dl("php_gd2.dll");
$font=$font<>null?$font:$_SERVER['WINDIR'].'//fonts//simhei.ttf';
header("content-type:image/gif");
$img=imagecreate($imgwidth, $imgheight);
$white=imagecolorallocate($img, 255, 255, 255);
imagecolortransparent($img, $white);
$black=imagecolorallocate($img, 0, 0, 0);
imagettftext($img, $fontsize, 0, 10, 20, $black, $font, gb2utf8($word));
imagegif($img);
imagedestroy($img);
}
$word='把汉字显示在透明图片上,同时也可以显示ABCDE*393';
word2transgif($word);
?>