package javax.servlet does not exist

[不指定 2005/11/30 22:23 | by ipaddr ]
编译servlet程序时,提示如下错误:

package javax.servlet does not exist

这是因为java找不到servlet包,需要将这个包放进CLASSPATH中.

以tomcat环境为例,在系统环境变量里,新加TOMCAT_HOME
TOMCAT_HOME=C:\Program Files\Apache Software Foundation\Tomcat\

在CLASSPATH中加入:

;%TOMCAT_HOME%\common\lib\servlet-api.jar

再重新编译即可.

作者写得很不错,虽然我工资远没有标题里写的那么多,很我欣赏这文章.转载.

  我住在海淀区,这里满大街跑的是月薪上万的小程序员儿,还有痛骂计算机专业无美女的项目经理,他们大脑袋、厚眼镜、因熬夜而布满血丝的眼睛,因不见阳光而酷似吸血鬼的脸,穿一个星期不洗的T-SHIRT,很有很有味道的,他们供楼不供车,他们翻开报纸只盯住北边的楼盘,倒不是因为关心奥运村,实在是想离公司近一些。我,衷心地喜欢着这个区。

  有女友去国贸那边应聘工作回来,一脸幸福状地向我描述,地铁站里全是帅哥,地面上更是临风玉树站成了森林,让她的小心灵经受了一次美的洗礼,她晕乎乎地回来了,对那些西装革履、散发名贵男用香水味道、气宇轩昂的白领男人们再三再四地概叹: “F4那算个啥,肚里没货,只知卖相,看看人家,啊,那才叫自信来源于知识,气质来源于财富……” 我打断她语无伦次的胡说八道,问她工作有戏没戏,她说,“凭我的英语水平,能没戏吗?!”

  过几日,女友去上班。再过几日,女友辞职。我问为个啥,她说,她是属于海淀区的好市民,与朝阳区那个高级白领集居地格格不入。

  “她们化妆都太精致,显得我象个黄脸婆,她们中午在洗手间用的是外国带回来的化妆品,我用的是外国牌子国内生产的东西,她们早餐吃意大利浓汤和甜点,我吃的是小笼包子跟豆浆……”女友愤愤地数落着,“非穿职业装不可,我的那十来条仔裤算是没有用武之地了,你看看我的可怜的脚,被高跟鞋折磨得都变形了,封建社会摧残人也不过如此了吧。靠,就这样,她们还说我搭配得不对,灰衬衫不能跟紫色外套一起穿!”

  我说,“这有什么关系,这跟一份好工作有什么关系?你啊,也太注重技术层面的问题了。” “我郁闷……”女友象迷路的孩子一样:“我还是在海淀这边找工作吧。在这儿如鱼得水,要多自在有多自在,加班也愿意,你知道吗,他们东边儿啊,真不是人待的地方!”

  我立马制止了她的人身攻击:“别瞎说!都是首都人民,哪儿来的种族歧视啊?”

  女友几乎声泪俱下地声讨:“不是我啊,是她们等级观念严重啊。你看咱们这儿,上亿身家也穿着懒汉鞋去小馆儿吃京酱肉丝儿,谁也不怵谁,你有钱那是你的事儿,我有技术是我的骄傲,可是东边儿,什么都攀比,连丝袜的牌子都比,那天我戴了我奶奶给的玉镯儿,被她们笑话了个半死,什么老土啊什么没品啊,好象她们生下来就在钻石堆里长大的,如果我稍微有个行差踏错,那就要沾污了她们的小资阵营!”

  我笑:“傻子,现在小资过时了,都兴BOBO了啦。”

  “呸!什么BOBO,以为这个周末去怀柔爬山,下个周末去音乐堂,就又波西又布尔?上班的时候照样抢单,照样勾心斗角,照样背后传谣言,不过是改成了用英语传!算了算了,我不是那林子里的鸟儿,我还是安心在海淀做技术吧,加班累得贼死也比跟人打交道好啊,大家都埋头干自己手头的活儿,人际关系淡如水,很舒服的,我爱穿什么穿什么,只要活儿做得漂亮,老板照样给加薪,我是再也不去高尚区了。”

  于是,一场散漫悠游族向精致优雅族的伟大试探,便以失败告终。

  现在,我的女友悠哉游哉地溜达在北四环路上,在中关村的古怪雕塑前吃三块钱的冰淇淋蛋筒,周末时她在北大清华之间流窜,到处寻找新锐欧洲电影放映地。

  有时候去电影学院旁边的“NASA”或者民族学院旁的“火山”蹦迪,在一群孩子的青春狂野中,她仿佛回到了学生时代。她穿着从学院路服装市场三十块钱买回的T-S,裹着她年轻的骄傲的身体。她素面朝天,在风里露着最真实最娇嫩的肌肤。她每次都在地铁站给盲眼歌手几块钱,她在过街天桥上买D版DVD,她爱看周星驰爱听王菲,她用公司名称抬头的信纸给妈妈写信说北京下雪了,她爱看樱桃小丸子却从不见人就讲“酱紫”,她除了黑白灰三色还会穿红色碎花的厚毛衣象冬天里最漂亮的一头熊……

  她不过感恩节不过复活节不过万圣节,在不是情人节的日子里收到玫瑰也很开心,平安夜十点半上床睡觉,因为第二天还要上班。

  她会带着笔记本电脑去北理工南门的“雕刻时光”做程序,叫一壶薰衣草茶渡过一个略带疲惫的下午,低声跟咖啡馆里打工的女生商量,“能不能把《加州旅馆》换成神秘园?我今天忘带耳机了……”她把三里屯留给都市里最糜烂最空泛的眼神,把哈根达斯留给都市里没有味蕾却能言善道的巧舌,把不地道的红酒留给都市里最不规范却感觉最好的手势。

  同学聚会的时候跟从前一样包饺子。还是最爱吃路口小馆子的羊肉门丁儿,一口气能吃六个。人大的食堂有一道铁板牛柳最好吃,农大食堂的红烧鱼很地道,最喜欢的是语言学院的图书馆,可以端饮料进去喝的,最满意的是地质大学的操场,公司的足球赛都是在那里进行…… 那郁郁的林荫道,金子一样的笑声啊,那青春的乌发、如玉的容颜,几个流浪歌手,几个校园诗人……让我们堕入这个梦中永不醒来。  

  凌晨一点,中关村的“永和豆浆”店里,灯火通明,加班的IT们在这里吃宵夜,男孩子与办公室里他暗恋着的女孩子一起,就着鲜肉馄饨和一小篮儿鸡柳,说着公司里今天的笑话,他怜惜地看着她因睡眠不足稍欠血色的脸,看着她杂乱的浓密的眉,多想告诉她,她长得很象自己南方家乡的小妹。那些深夜里的快餐店,那些不曾丢掉美好幻想的人们……门外,星光暗淡,远处,是沉睡的楼群,而他爱的女孩,坐在对面心满意足地吃着滚烫的馄饨……

  中关村的男孩儿,不会告诉女孩子帕格尼尼的小提琴让他落泪,他会用鼠标画一张丑丑的大头鱼送给她,他会真心地夸奖女孩子的红帽子真好看而不会指责帽子颜色与鞋不搭配。

  中关村的男孩儿,懂得有关等待的故事。

  公司有很可爱的环境,因为老板的不打领带和总是不在家。她坐在前面他在后面,早晨的阳光淡淡地斜照在他俩的桌上,她的笔架和他的显示器她的小熊杯子和他的咖啡勺,他带着南方口音说今天堵车,她趁老板不在梳梳头,把小镜子竖在键盘上,一道刺眼的光晃到他那儿,他在后面大呼小叫,说是妖女放出厉害武器了。

  每天早上闻着咖啡的味儿开始在键盘上敲打,象一首诗里说的,大珠小珠落玉盘,他靠近她在屏幕上指点时,呀,他暗恋的女孩子,传来洗发水的清香,不是名贵的CD不是什么“夜间飞行”,那气息,象椰子和太阳的混了。

  是的是的,我们留恋纯真朴实的年代,我们希望看到生命如麦田,麦芒微微刺手,朴实的芳香弥漫在大地上,能醉倒所有付出过汗水的人们,那金黄色的麦浪,会让一只狐狸想起遥远星球上的小王子……

  我们不愿意让脚受到皮鞋的束缚、让脖子受到领带的束缚、让心受到格调的束缚。

  让小资们去孜孜以求最精致最优雅的生活吧,让他们劳累不堪地跟随着地铁书摊上的畅销指南书,一步一个脚印地上下求索高尚生活吧,让他们追随着《时尚》去买时尚而非自己喜欢的衣服吧,让他们拧着眉头吃西餐吧,让他们在音乐厅打盹、然后诉说他们被音乐感动得夜不能寐吧,让他们为看不懂的现代雕塑胡说八道吧,让他们去盛赞德国的马桶法国的餐具吧,让他们去描弧形最标准的眉毛吧……他们前天是布尔乔亚,昨天是波希米亚,今天是BOBO一族,明天是IF国际自由人,后天是谁?他们自己也不知道,因为指南书还没有出来呢

有很多朋友可能安装了Office 2003,但是有很多PPT文件打不开,换了Power Point XP或者2000就能打开。一般碰到这样的问题,你可以到这儿下载安装补丁http://support.microsoft.com/kb/828041。

概要
Microsoft 发布了一个 Microsoft Office 2003 更新。此更新可以修复在尝试打开或保存一个包含以前在旧版本的 Microsoft Office 中修改和保存的 OfficeArt 图形的 Microsoft Office PowerPoint 2003 文件、Microsoft Office Word 2003 文件或 Microsoft Office Excel 2003 文件时出现的问题。在旧版本 Office 中打开 PowerPoint 2003 文件、Word 2003 文件或 Excel 2003 文件时,可能会向文件中引入空的“复杂”属性,并且可能会在描述这些属性的文件记录中更改一个位。旧版本的 Office 将忽略这个位值,但是,在 Office 2003 中检测到该值后,您可能会遇到下面的症状:
• 文档无法完全打开。
• 文档可能已经损坏。
• 文档能够打开,但缺少内容。
• 您可能会收到错误信息。
请安装补丁

DNS查询利器

[不指定 2005/11/23 22:49 | by ipaddr ]
发现一个好东东,不敢独享,发来给大家。

http://www.dnsstuff.com/

查DNS的,

想查什么记录查什么记录。

查MX只需在DNS Timing里填上域名,选择MX就OK了。

例如查ipaddr.com的mx记录。

在DNS Timing里输入ipaddr.com,再选mx,再lookup,就出来了。

MySQL错误(errno: 144)的修复

[不指定 2005/11/22 15:47 | by ipaddr ]
由于服务器硬盘空间耗尽,导致Mysql出错,一阵操作后,PHPMyadmin提示

Can't open file: 'tblUser.MYI'. (errno: 144)

可按如下方法修复:

myisamchk -f tblUser.MYI

就可以修复。
Eclipse基础--安装eclipse及语言包

--转载--一直漂整理

这里主要介绍eclipse及其语言包的下载与安装

一.下载eclipse和其语言包

Eclipse下载地址:
http://www.eclipse.org/downloads/index.php
下载文件:eclipse-SDK-3.1.1-win32.zip

语言包下载地址:
http://sunsite.informatik.rwth-aachen.de/eclipse/downloads/

http://eclipse.cis.sinica.edu.tw/downloads/

http://eclipse.openwebeng.com/downloads/
下载对应版本的语言包文件,比如:NLpack1-eclipse-SDK-3.1.1a-win32.zip


二.安装eclipse和其语言包

环境要求:Java(TM) 2 SDK,建议使用使用比较新的版本.

安装过程:
解压Eclipse3.1.1到一个目录(这里我解压到D:\program files\eclipse),然后把语言包NLpack-eclipse-SDK-3.1.1a-win32.zip也解压到D:\program files\eclipse目录。然后双击此目录中的eclipse.exe文件即可打开eclipe并实现了汉化.

注意:
1.最好使用一个从未被启动过的Eclipse,这样可以完全中文化。
如果在安装中文包时Eclipse已经被使用过,则可能会出现有部分内容不能被汉化,比如“搜索”、“运行”等菜单。如果中文化的不完全,把eclipse 目录下的configuration目录删除,重启即可。
2.
对于使用过的eclipse.可以加上这个参数后启动 eclipse -nl "zh_CN"
这样就是中文的了。然后zh_US是英文的。以后可以自由切换.

对于e文不好的人或者初学者来说,中文版本的eclipse可以显著提高学习效率,便于接受和使用eclipse。但是,毕竟当前先进的技术是英文一统天下,所以,在对eclipse有了初步的认识之后,还是建议大家多使用英文版的eclipse,这样,对以后的进一步学习和使用有好处。

了解Linux的时钟

[不指定 2005/11/09 22:50 | by ipaddr ]
 由于Linux时钟和Windows时钟从概念的分类、使用到设置都有很大的不同,所以,搞清楚Linux时钟的工作方式与设置操作,不仅对于Linux初学者有着重大意义,而且对于使用Linux服务器的用户来说尤为重要。

   Linux时钟的分类

   Windows时钟大家可能十分熟悉了,Linux时钟在概念上类似Windows时钟显示当前系统时间,但在时钟分类和设置上却和Windows大相径庭。和Windows不同的是,Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Clock,简称RTC)时钟两种。系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电池供电的那个主板硬件时钟,这个时钟可以在BIOS的“Standard BIOS Feture”项中进行设置。

   既然Linux有两个时钟系统,那么大家所使用的Linux默认使用哪种时钟系统呢?会不回出现两种系统时钟冲突的情况呢?这些疑问和担心不无道理。首先,Linux并没有默认哪个时钟系统。当Linux启动时,硬件时钟会去读取系统时钟的设置,然后系统时钟就会独立于硬件运作。

   从Linux启动过程来看,系统时钟和硬件时钟不会发生冲突,但Linux中的所有命令(包括函数)都是采用的系统时钟设置。不仅如此,系统时钟和硬件时钟还可以采用异步方式,见图1所示,即系统时间和硬件时间可以不同。这样做的好处对于普通用户意义不大,但对于Linux网络管理员却有很大的用处。例如,要将一个很大的网络中(跨越若干时区)的服务器同步,假如位于美国纽约的Linux服务器和北京的Linux服务器,其中一台服务器无须改变硬件时钟而只需临时设置一个系统时间,如要将北京服务器上的时间设置为纽约时间,两台服务器完成文件的同步后,再与原来的时钟同步一下即可。这样系统和硬件时钟就提供了更为灵活的操作。

  设置Linux的时钟

   在Linux中,用于时钟查看和设置的命令主要有date、hwclock和clock。其中,clock和hwclock用法相近,只不过clock命令除了支持x86硬件体系外,还支持Alpha硬件体系。由于目前绝大多数用户使用x86硬件体系,所以可以视这两个命令为一个命令来学习。

   1.在虚拟终端中使用date命令来查看和设置系统时间
   查看系统时钟的操作:
   # date

   设置系统时钟的操作:
   # date 091713272003.30

   通用的设置格式:
   # date 月日时分年.秒

   2.使用hwclock或clock命令查看和设置硬件时钟
   查看硬件时钟的操作:
   # hwclock --show 或
   # clock --show
   2003年09月17日 星期三 13时24分11秒 -0.482735 seconds

   设置硬件时钟的操作:
   # hwclock --set --date="09/17/2003 13:26:00"

   或者
   # clock --set --date="09/17/2003 13:26:00"

   通用的设置格式:hwclock/clock --set --date=“月/日/年 时:分:秒”。

   3.同步系统时钟和硬件时钟

   Linux系统(笔者使用的是Red Hat 8.0,其它系统没有做过实验)默认重启后,硬件时钟和系统时钟同步。如果不大方便重新启动的话(服务器通常很少重启),使用clock或hwclock命令来同步系统时钟和硬件时钟。

   硬件时钟与系统时钟同步:
   # hwclock --hctosys

   或者
   # clock --hctosys

   上面命令中,--hctosys表示Hardware Clock to SYStem clock。

   系统时钟和硬件时钟同步:
   # hwclock --systohc

   或者
   # clock --systohc

   使用图形化系统设置工具设置时间

   对于初学者来,笔者推荐使用图形化的时钟设置工具,如Red Hat 8.0中的日期与时间设置工具,可以在虚拟终端中键“redhat-config-time”命令,或者选择“K选单/系统设置/日期与时间”来启动日期时间设置工具。使用该工具不必考虑系统时间和硬件时间,只需从该对话框中设置日期时间,可同时设置、修改系统时钟和硬件时钟。

   Internet同步时钟设置

   在Windows XP日期与时间设置中有一项与Internet同步的功能,有了这项功能只要上网便可得到十分准确的时间。Red Hat 8.0也提供了这样的功能,在日期与时间设置工具对话框中的下部,有一个“启用网络时间协议”的选项,将该项选中就可以使用网络时间协议来同步Linux 系统时钟。选中该项后,其下面的服务器下拉列表框就变为可用状态,可从中选择一个时间服务器作为远程时间服务器。然后单击确定按钮,便可连接所设定的时间服务器,并与之同步时间。


假设有10个网站,分布在各地,它们的库存要同步,而数据库不支持远程连接。

我们要实时地取得服务器的库存数,可以通过很多种方法,我所知道的有以下几种:

·CURL方式
·SOCKET方式
·PHP5中的SOAP方式

以下分别给出示例来实现它:

[b]CURL方式[/b]

client.php

<?php
$psecode = ’NDE005’;
$website = ’www.abc.com’;
$amt = 1;
$pwd = 123456;
$ch = curl_init();
$curl_url = "http://ics1.server.com/index.php?web=" . $website .
"&pwd=" . $pwd . "&action=check&pseid=" . $psecode .
"&amt=" . $amt;
curl_setopt($ch, CURLOPT_URL, $curl_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//不直接输出,返回到变量
$curl_result = curl_exec($ch);
$result = explode(’,’, $curl_result);
curl_close($ch);
print_r($result);
?>

  服务器端只需按一定的格式输出,然后客户端按此格式接收就可以了如:

echo "OK," . $fpsecode . "," . $fbalance ;//以逗号分隔

  SOCKET方式

  这个要借助第三方类库HttpClient,可以到这里下载:http://scripts.incutio.com/httpclient/

<?php
require_once ’class/HttpClient.php’;
$params = array(’web’ => ’www.abc.com’,
’pwd’ => ’123456’,
’action’ => ’check’,
’pseid’ => ’NDE005’,
’amt’ => 1);
$pageContents = HttpClient::quickPost(’http://ics.server.com/index.php’, $params);
$result = explode(’,’, $pageContents);
print_r($result);
?>

  PHP5中的SOAP方式

  server.php

<?php
function getQuote($fpsecode) {
global $dbh;
$result = array();
try {
$query = "SELECT fprice, fcansale, fbalance, fbaltip FROM tblbalance where upper(trim(fpsecode)) = :psecode limit 1";
$stmt = $dbh->prepare($query);
$stmt->execute(array(’:psecode’ => strtoupper(trim($fpsecode))));
$stmt->bindColumn(’fprice’, $fprice);
$stmt->bindColumn(’fcansale’, $fcansale);
$stmt->bindColumn(’fbalance’, $fbalance);
$stmt->bindColumn(’fbaltip’, $fbaltip);
while($row = $stmt->fetch(PDO_FETCH_BOUND)) {
//
}
} catch (PDOException $e) {
echo $e->getMessage();
}
return $fprice; //你可以返回一个数组
}

$dsn = ’pgsql:host=192.168.*.* port=5432 dbname=db user=123456 password=123456’;
try {
$dbh = new PDO($dsn);
} catch (PDOException $e) {
die(’Connection failed: ’ . $e->getMessage());
}
ini_set("soap.wsdl_cache_enabled", "0"); // disabling WSDL cache
$server = new SoapServer("stockquote.wsdl"); //配置文件
$server->addFunction("getQuote");
$server->handle();
?>

  stockquote.wsdl

<?xml version =’1.0’ encoding =’UTF-8’ ?>
<definitions name=’StockQuote’
targetNamespace=’http://example.org/StockQuote’
xmlns:tns=’ http://example.org/StockQuote ’
xmlns:soap=’http://schemas.xmlsoap.org/wsdl/soap/’
xmlns:xsd=’http://www.w3.org/2001/XMLSchema’
xmlns:soapenc=’http://schemas.xmlsoap.org/soap/encoding/’
xmlns:wsdl=’http://schemas.xmlsoap.org/wsdl/’
xmlns=’http://schemas.xmlsoap.org/wsdl/’>

<message name=’getQuoteRequest’>
<part name=’symbol’ type=’xsd:string’/>
</message>
<message name=’getQuoteResponse’>
<part name=’Result’ type=’xsd:float’/>
</message>

<portType name=’StockQuotePortType’>
<operation name=’getQuote’>
<input message=’tns:getQuoteRequest’/>
<output message=’tns:getQuoteResponse’/>
</operation>
</portType>

<binding name=’StockQuoteBinding’ type=’tns:StockQuotePortType’>
<soap:binding style=’rpc’
transport=’http://schemas.xmlsoap.org/soap/http’/>
<operation name=’getQuote’>
<soap:operation soapAction=’urn:xmethods-delayed-quotes#getQuote’/>
<input>
<soap:body use=’encoded’ namespace=’urn:xmethods-delayed-quotes’
encodingStyle=’http://schemas.xmlsoap.org/soap/encoding/’/>
</input>
<output>
<soap:body use=’encoded’ namespace=’urn:xmethods-delayed-quotes’
encodingStyle=’http://schemas.xmlsoap.org/soap/encoding/’/>
</output>
</operation>
</binding>

<service name=’StockQuoteService’>
<port name=’StockQuotePort’ binding=’StockQuoteBinding’>
<soap:address location=’http://192.168.3.9/php5/server.php’/>
</port>
</service>
</definitions>

client.php

<?php
$client = new SoapClient("stockquote.wsdl");
$result = $client->getQuote("nde005");
print_r($result);
?>

PHP-JSP性能不完全测试

[不指定 2005/11/05 22:50 | by ipaddr ]
前几天在CU看到有人比较PHP与JSP,.net,结果表明PHP比JSP,.net性能低下很多。本人认为即使有差距,也不应该有这么大,所以认真测试一下几者间的性能差距。由于很久没用.net了,所以,暂时没有测试.net。

本测试数据真实,但只做为参考。欢迎大家讨论。
除做比较外,也可供PHP,JSP程序员参考,以便优化自己的程序。

本测试由一直漂(ipaddr,bcomcn)原创,欢迎转载,并注明出处。问题反馈:admin.net(at)163.com

由于这博客帖表格页面容易乱,所以,测试报告放另一服务器上,详情请点击:

http://www.makepic.com/phpjsp.htm
http://www.eit.name/other/phpjsp.htm

PHPMyVisites安装

[不指定 2005/11/03 22:53 | by ipaddr ]
PHPMyVisites安装

phpMyVisites是一个用PHP/MySQL技术开发,采用Gnu GPL.方式发布的关于网站访问量统计的开

源软件.(ipaddr,bcomcn一直漂原创笔记,转载请注明)

访问统计通常可以分为两类,一类是通过访问日志做统计,另外一类,是实时在线统计。phpMyV

isites属于第二类。

phpMyVisites是一个用PHP/MySQL技术开发,所以,安装PHPMyVisites前,你必须要有一个支持P

HP的WEB服务器,以及安装Mysql数据库。

假设你已安装好PHP+Mysql+WEBServer,接下来安装phpMyVities

a.下载
phpmyvisites的官方网站是:http://www.phpmyvisites.net/
从官方网站下载最新版的PHHMyVisites

b.上传
将phpMyvities解压,上传到服务器的WEB目录,假设放在/phpmyvities目录中

c.设置目录权限
phpmyvities安装过程中,需要新建几个文件,所以,安装前要设置好目录属性,以便PHP能访问

和修改文件系统。主要是需要以下几种属性
/phpmyvities 安装目录,需要有写权限,PHPMyVities会在这目录新建几个配置文件。
/phpmyvities/langdispos.php 语言设置需要修改这个文件
/phpmyvities/lang/* 语言设置可以需要上传语言或删除语言
/phpmyvities/graphs/maps 会修改这些图片
在Linux下,可以将这些目录或文件的属主设为apache。

d.配置好MYSQL数据库
设置好用户和权限,建好数据库

e.安装
http://domain/phpmyvities/
按提示安装。安装过程会建几个配置文件。

f.使用
安装完成后,首先需要建一个站点,建好站点后,再获取javascript代码,将javascript代码到

需要统计的网站的页面。一般是放在网站的统一的页脚里面。


附:PHPMyVities中的JPGRAPH乱码解决方案
PHPMyVities使用jpgraph绘图,jpgraph使用GD库绘图,所以,你的PHP要支持GD库。
默认情况下,jpgraph对中文支持得不好,可以按如下方法修改:
1.首先,从Windows的fonts下面将simhei.ttf,simsun.ttc两处字体拷到[PHPMYVISTI]/graphs/f

onts下面,这个字体路径在graphs/jpgraph.php里面定义了,如果在这个文件没有定义TTF_DIR

常量,那么,将这两个字体文件,Linux下拷到/usr/X11R6/lib/X11/fonts/truetype/,Windows

下拷到fonts下面。

2.
将graphs/config_graph.inc.php里的所有FF_VERDANA字体,改为FF_SIMSUN字体
由于座标也有可能是汉字,所以,座标字体也要改成FF_SIMSUN,将$axey_font,$axex_font设置

为FF_SIMSUN(也就是把所有FF_FONT1改为FF_SIMSUN)

3.由于phpMyVistes的语言包本身就是uft8编码,所以,不需要在程序里进行gb2312->uft8的转

码。需要将程序中转码的部分去除。
找到graphs/jpgraph.php里的LanguageConv类的Convert函数(约660行),

elseif( $aFF === FF_SIMSUN ) {
后面,加入一行,
return $aTxt;
不转码直接返回。(注释掉原来{}里的程序段)
注意,此处是因为PHHMyVistes的语言包就是uft8编码的,所以不需要转为utf8编码,PHP用GD库

绘中文汉字时,需要将gb2312编码转为utf8编码。Jpgraph需要转码时,可以用Jpgraph自带的一

个类转,也可以直接用iconv转,iconv("GB2312","UTF-8",$aTxt)。(iconv需要在安装PHP里带

上相关选项。)

jpgraph中文乱码一般可以按这几步解决
1.copy字体到对应目录
2.绘图时,指定字体为FF_SIMSUN
3.所绘字符串需要必须是utf8编码

分页: 1/2 第一页 1 2 下页 最后页 [ 显示模式: 摘要 | 列表 ]