php绘制饼状图
drawPieImg()函数包含8个参数,$title为饼状图的标题;$dataArr为需要显示的数据数组;$labelArr为对应数据的标签分类数组;$colorArr为对应数据的绘图颜色数组,这4个参数是必须的,对于不同的系统应用传递相应的参数即可。接下来的4个参数,负责设置要生成的饼状图的大小,如果不设置则使用系统默认值。程序按照床底数组数据的大小,从0度开始绘制,方向按照顺时针方向依次绘制对应数据占据的扇面大小。
<?php
//变量定义,画椭圆弧时的角度大小
define("ANGLELENGTH",3);
/**
* 绘制图片
* @param $title 3D图的标题
* @param $dataArr 显示的数据数组
* @param $labelArr 对应数据的标签分类数组
* @param $colorArr 对应绘图颜色的数组
* @param $a 画布的基准宽度
* @param $b 画布的基准高度
* @param $v 3D柱的高度
* @param $font 字体大小
* @return 绘制成功的图片访问路径
*/
function drawPieImg($title, $dataArr, $labelArr, $colorArr, $a=250, $b=120, $v=20, $font=10){
$ox = 5+$a;
$oy = 5+$b;
$fw = imagefontwidth($font);
$fh = imagefontheight($font);
$n = count($dataArr);//计算数组长度
$w = 10+$a*2;
$h = 10+$b*2+$v+($fh+2)*$n;
//创建画板
$img = imagecreate($w, $h);
//转RGB为索引色
for($i=0; $i<$n; $i++)
$colorArr[$i] = drawIndexColor($img,$colorArr[$i]);//为图像$img分配颜色
$clrbk = imagecolorallocate($img, 0xff, 0xff, 0xff);
$clrt = imagecolorallocate($img, 0x00, 0x00, 0x00);
//填充背景色
imagefill($img, 0, 0, $clrbk);
//求和
$tot = 0;
for($i=0; $i<$n; $i++)
$tot += $dataArr[$i];
//每个分类的起始角度大小
$sd = 0;
//每个分类所占据的角度大小
$ed = 0;
$ly = 10+$b*2+$v;
for($i=0; $i<$n; $i++){
$sd = $ed;
$ed += $dataArr[$i]/$tot*360;
//画3d扇面
draw3DSector($img, $ox, $oy+20, $a, $b, $v, $sd, $ed, $colorArr[$i]);
//画标签
imagefilledrectangle($img, 5, $ly, 5+$fw, $ly+$fh, $colorArr[$i]);
imagerectangle($img, 5, $ly, 5+$fw, $ly+$fh, $clrt);
//中文转码
$str = iconv("GB2312", "UTF-8", $labelArr[$i]);
imagettftext($img, $font, 0, 5+2*$fw, $ly+13, $clr
相关文档:
<?php
//新建目录
mkdir("/path/to/my/dir", 0700); //0700表示权限最大
//删除目录
rmdir("/path/to/my/dir");
//遍历目录
$p =dir(/etc/php5);
echo "handler:".$p->handler;
while(false!=$entry=$p->read()){
echo $entry."\n" ;
}
$p->close();
//输出文件内容
$handle=@ ......
这是一些使用频率比较高的函数,有的来自别人的程序......
1.产生随机字符串函数
function random($length) {
$hash = '';
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz';
$max = strlen($chars) - 1;
mt_srand((double)microtime() * 1000000);
for($ ......
自己编写基于MVC的轻量级PHP框架
2008-4-3 23:33:56 已被阅读:
477 发表评论
做WEB开发已有一年,每次都写重复的东西, 因此,想自己写一下框架,以后开发方便.
本人之前学习asp.NET两年,JSP半年,可是后来因为工作的原故换成PHP.其实很不喜欢PHP的语法.还有PHP的函数名,每回都忘记..还是喜
欢C#和JAVA的语法,哈...不 ......
<?php
function genPassword($min = 5, $max = 8)
{
$validchars="abcdefghijklmnopqrstuvwxyz123456789";
$max_char=strlen($validchars)-1;
$length=mt_rand($min,$max);
$password = "";
for($i=0;$i<$length;$i++)
{
$password.=$validchars[mt_rand(0,$max_char)] ......
之前参加学校的挑战杯,做了一个小的手机网站项目,其中要实现登陆学校校内邮箱,考虑到手机用户端没有办法直接访问学校网页。于是想到了使用php实现模拟登陆,有些许的心得。顺便记录一下。
在我们学校的邮箱登陆页面的登陆表单的内容有用户名和密码,没有验证码机制,这样比较好办。从源文件里记下表单里有username和pas ......