PHP网页编程之贴段PHP绘图的法式,给但愿用PHP作图的...
告诉你了一个方式,但是缺少努力这一环节,那也是白搭。法式 次要包含三个文件:1、view.php是挪用法式。
2、chart.php是用来生成图表的法式。
3、gbtoutf8.php是用来中文解码的(注:已处理中英文夹杂不克不及正常显示的成绩)
1、view.php
<?
include("gbtoutf8.php");
?>
<html>
<head>
<title></title>
<meta name="Author" content="XIANG Li">
</head>
<?
/*此处数据可从数据库中获得*/
$aStr = "IT,PC,Phone,Sever,Passport,Software";
$aSoft = "Win2000,Win98,Office,Foxmail,Outlook";
$aHard = gb2utf8("地板,窗户,玻璃,桌子,灯管,植被");
$title1 = gb2utf8('2002年IT保护report');
$title2 = gb2utf8('2002年软件保护report');
$title3 = gb2utf8('2002年固定资产report');
?>
<body>
<div align="center">
<table>
<tr>
<td><input type="image" src="./chart.php?aStr=<?=$aStr?>&title=<?=$title1?>"></td>
</tr>
<tr><td> </td></tr>
<tr>
<td><input type="image" src="./chart.php?aStr=<?=$aSoft?>&title=<?=$title2?>"></td>
</tr>
<tr><td> </td></tr>
<tr>
<td><input type="image" src="./chart.php?aStr=<?=$aHard?>&title=<?=$title3?>"></td>
</tr>
</table></div>
</body>
</html>
2、chart.php
<?php
/*
*功效:生成统计图表
*法式员:wlxz
* 日期:2002-00-00
*/
Header("Content-type: image/png");
$im = ImageCreate (350, 280);
$col_oth = ImageColorAllocate($im, 0,0,0);
$col_orn = ImageColorAllocate($im, 255,192,0);
$col_yel = ImageColorAllocate($im, 255,255,0);
$col_red = ImageColorAllocate($im, 255,0,0);
$col_grn = ImageColorAllocate($im, 0,255,0);
$col_blu = ImageColorAllocate($im, 0,0,255);
$col_wit = ImageColorAllocate($im, 255,255,255);
$col_array = array($col_oth, $col_orn, $col_yel, $col_red, $col_grn, $col_blu);
$dot1 = 28;
$dot2 = 20;
$font="c:/winnt/fonts/simhei.ttf";
$aStr = explode(",", trim($_GET['aStr']));
$title = trim($_GET['title']);
ImageTTFText($im,18,0,100,50,$col_wit,$font,$title);//写题目
for($i=1;$i<count($col_array);$i++){
ImageFilledRectangle($im,50*$i-$dot2,$dot1*$i,50*$i,200,$col_array[$i]);
ImageRectangle($im,50*$i-$dot2,$dot1*$i,50*$i,200,$col_wit);
ImageRectangle($im,50*$i-$dot2-1,$dot1*$i-1,50*$i+1,200,$col_wit);
ImageTTFText($im,14,270,50*$i-15,205,$col_wit,$font,$aStr[$i-1]);
// ImageLine($im,50*$i-$dot2,$dot1*$i,50*$i-$dot2,200,$col_wit);
ImageLine($im,50*$i-$dot2,$dot1*$i,50*$i,$dot1*$i,$col_wit);
}
ImageRectangle($im,10,10,300,200,$col_wit);
ImageRectangle($im,11,11,301,201,$col_wit);
//右侧百分比
for($i=1;$i<count($col_array);$i++){
ImageLine($im,300,$i*33,306,$i*33,$col_wit);
$str = (100-$i*5)."%";
ImageTTFText($im,14,0,315,$i*33+2,$col_wit,$font,$str);
}
ImagePNG($im);
ImageDestroy($im);
?>
3.gbtoutf8.php
<?
/*
*功效:把GB2312编码转换成UTF-8的编码
*法式员:wlxz
* 日期:2002-00-00
*/
function gb2utf8($gb){
if(!trim($gb))
return $gb;
$filename="gb2312.txt";
$tmp=file($filename);
$codetable=array();
while(list($key,$value)=each($tmp))
$codetable=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));
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 gb2unicode($gb){
if(!trim($gb))
return $gb;
$filename="gb2312.txt";
$tmp=file($filename);
$codetable=array();
while(list($key,$value)=each($tmp))
$codetable=substr($value,9,4);
$utf="";
while($gb){
if (ord(substr($gb,0,1))>127){
$this=substr($gb,0,2);
$gb=substr($gb,2,strlen($gb));
$utf.="&#x".$codetable.";";
}
else{
$gb=substr($gb,1,strlen($gb));
$utf.=substr($gb,0,1);
}
}
return $utf;
}
?>可以在书上很方便地做标记,及时记下自己的心得体会。 没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。 说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。 刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。 基础有没有对学习php没有太大区别,关键是兴趣。 对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。 我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。 爱上php,他也会爱上你。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
页:
[1]