当前位置: 首页 > 图文教程 > 网络编程 > PHP > 在 PHP 中用描点法“绘制”中文

PHP
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
用mysql内存表来代替php session的类
简化php模板页面中分页代码的解析
一周让你学会PHP 不错的学习资料
PHP 数据库树的遍历方法
php实现从ftp服务器上下载文件树到本地电脑的程序
PHP 操作文件的一些FAQ总结
PHP 截取字符串 分别适合GB2312和UTF8编码情况
PHP 编程的 5个良好习惯
php下几个常用的去空、分组、调试数组函数
PHP Ajax中文乱码问题解决方法
php 采集书并合成txt格式的实现代码
php Try Catch异常测试
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Zend 输出产生XML解析错误
php动态生成JavaScript代码
隐性调用php程序的方法
在JavaScript中调用php程序
php 数组的创建、调用和更新实现代码
php生成SessionID和图片校验码的思路和实现代码

在 PHP 中用描点法“绘制”中文


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 121 ::
收藏到网摘: n/a

  前言:
现在,越来越多的人喜欢上网了,越来越多的人拥有了自己的个人主页。随着各种自动化软件工具的出现,制作网页越来越简单。但,由于特效随处可得,创新的东西,越来越少。说不定,哪天,你会发现某个网站上的计数器和自己的一模一样。网页越做越老练。网页上的东西,也越来越多,越来越丰富。
设问:
  • 在网页上,如果我要添加一个计数器:
    以前,那就去空间提供商那里要个链接,或其他地方去复制个地址,但这一些,总归是别人做的,好不好,你是没有太多的发言权的,只能一个一个地找。
  • 在网页上,我要将一些信息发布出去:
    假如信息是文本,做一个新页面,加个链接;
    是数据,做一个新页面,加个链接:
    可要是这些数据经常更新,甚至,每小时、每分钟,都可能会改变,你是否愿意守在电脑前,不停修改、上传呢?(咱可不是商业网站,没有人愿意为你而烧钱。)
    而留言板、聊天室、论坛,这些,决不是单靠HTML和JAVASCRIPT就能搞定的。

为了实现更多的自动控制,可以使用CGI(Common Gateway Interface)程序来实现这些功能。

软件需求:
PHP:GD Library
配置支持PHP的服务器。我用OmniHTTPd Professional

对于计数器和实时数据统计、发布,我们可以用图片来完成。在图片中输出文字。
在PHP中,要创建一个图片,并在上面显示点内容,基本步骤如下:

<?php
//http头,告诉浏览器,这是一个GIF图片
header ("Content-type: image/gif");
// 要画画,先要有花布不是?创建一个400×300调色板图像
$im = imagecreate (400, 300);
$black = imagecolorallocate ($im, 0, 0, 0);
// 默认黑色背景。
//(默认,是指第一个定义的颜色。如果在此行代码前面定义了另一个颜色,那么,最先定义的那个,就是默认背景颜色。
$red = imagecolorallocate ($im, 255, 0, 0);
//红色。如果这两行交换,你会发现背景是红色,文字是黑色。
$string="1234567890";
// 要绘制的字符
imagestring ($im,12,10,10,$string,$red);
//在(10,10)开始绘制字符串
imagepng ($im);
// 以png格式输出,也可以用imagejpeg($im);或magegif($im);但后者,如果GD版本高于1.6,就不能用了。
imagedestroy ($im);
// 结束,清除所有占用的内存资源
?>


上面示例,在400×300的图片上,自点(10,10)开始,绘制12磅的"1234567890"。你有没有注意到这张图片的大小是:251字节!你也可以试试其他的输出格式。
图片的大小,与图片中非背景象素点数有关,跟输出多少象素无关。

然而,有一个问题。
你可以用imagestring()输出如下的信息:
imagestring($im,1,0,0,"abcdefghijklmnopqrstuvwxyz0123456789~!@#$%^&*()_+{}|:"<>?[]';,./",$red);
可是,你无法正确输出中文!!!
imagestring($im,1,0,0,"啊",$red);
你看到的,决不是中文!!而是乱码。
PHP默认的字符集是UTF-8,而简体中文是GB2312。

如何解决?!
为了解决这个问题,你可以让PHP加载扩展模块php_iconv.dll(UNIT下的后缀名是.SO),不过,有时候,可能不能正常工作。本来,我要把一段测试代