麻辣堂|资源主站|开发论坛|在线手册
首页 Apache Linux Java MySQL 注册帮助 
PHP项目开发组是PHP开发资源网于2007组年建成立的项目开发团队,目前核心开发成员有27人, 项目协作成员8名.下设7个开发组,主要承接大/中型网站项目开发任务。

    由于开发任务较多,人员比较紧张,现面向社会招聘全职或者兼职开发人员,不管你是在校大学生,还是全职开发人员,以及SOHO都可以联系本站,我们可以长期合作,并为您带来丰厚的报酬。
  您现在的位置:PHP开发资源网 > 麻辣堂 > 详细资料
待解决
老问题:图片水印与gb2utf8 指定的文字转换为UTF-8格式
悬赏分:20 - 2007年08月18日

在向一张图片里写入汉字时,涉及到编码转换。其中得包含GB2312.TXT这个文件。而这文件在类里面用for 循环的时候,因为太大,总是超时,该怎么办呢?而我看那些显IP探针里都很快显示出来了,是不是用的类不对呢???以下是代码


<?
header("Content-type: image/gif");
$pic="nv.jpg";
if (empty($txt)){
$txt="请输入文字试验";
}
$str = gb2utf8($txt);
$pich=ImageCreateFromJPEG($pic);
$color=ImageColorAllocate($pich,0,128,192);
ImageTTFText($pich,12,0,10,20,$color,"./simkai.ttf",$str);
ImageJPEG($pich);
ImageDestroy($pich);

function u2utf8($c)
{
for($i=0;i
if ($c < 0x80)
$str.=$c;
elseif ($c < 0x800)
{
$str.=(0xC0 | $c>>6);
$str.=(0x80 | $c & 0x3F);
}
elseif ($c < 0x10000)
{
$str.=(0xE0 | $c>>12);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
}
elseif ($c < 0x200000)
{
$str.=(0xF0 | $c>>18);
$str.=(0x80 | $c>>12 & 0x3F);
$str.=(0x80 | $c>>6 & 0x3F);
$str.=(0x80 | $c & 0x3F);
}
return $str;
}

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);

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

?>


高手现身啊!

提问者:SNAIL_RUN   08-18 14:02
答复
路过。。。顺便帮顶:)
回答者:玉米づ冰冻可乐 - 瓦岗村民 8-22 09:10
我也来回答:
不管你有没有帮助我们,瓦岗寨8万村民将感谢你。。。。。

为防止灌水,您需要计算一道数学题: 答案:
44 + 99 = ? 请将计算结果填在上面

 
[]
©2007 PhpRes.COM