openflashchart 2.0 简单案例php版


Posted in PHP onMay 21, 2012

1.openflashchart是一种比较实用的图标呈现插件,而且是开源的,网址http://teethgrinder.co.uk/open-flash-chart/

2.FlashChart类

FlashChart Class Code class FlashChart 
{ 
private $id; 
private $height; 
private $width; 
private $path; 
function __construct($path="",$width=300,$height=500,$id="myChart") 
{ 
global $flash_chart; 
$this->id=$id; 
$this->height=$height; 
$this->width=$width; 
$this->path=$path; 
if(!$flash_chart) 
{ 
echo '<script type="text/javascript" src="'.$path.'js/json/json2.js"></script>'; 
echo '<script type="text/javascript" src="'.$path.'js/swfobject.js"></script>'; 
echo '<script type="text/javascript" src="'.$path.'js/jquery-1.4.4.min.js"></script>'; 
$flash_chart=true; 
} 
} 
function __destruct() 
{ 
unset($this->id,$this->height,$this->width,$this->path); 
} 
function setID($id) 
{ 
$this->id=$id; 
} 
function setChart($file,$info) 
{ 
$tp=new TemplateData($file); 
echo '<script type="text/javascript">'; 
echo "data_{$this->id}=".$tp->changeInfo($info).';'; 
echo "function ofc_get_dataOf{$this->id}(){return JSON.stringify(data_{$this->id});}"; 
echo "swfobject.embedSWF('".$this->path."/open-flash-chart.swf', '$this->id', '$this->width','$this->height','9.0.0','expressInstall.swf',{'get-data':'ofc_get_dataOf{$this->id}'} )"; 
echo '</script>'; 
} 
}

3,TemplateData类

把一个简单的图标的配置从已经写好的txt文本里取出来加载所用的类 :例如

{ 
"title": 
{ 
"text":"(title)", 
"style":"{color:#FF0000;font-size:24px;}" 
}, 
"y_legend":{ 
"text": "iWebShop", 
"style": "{color: #736AFF;font-size:16px;}" 
}, "elements":[ 
{ 
"type": "line", 
"colour": "#736AFF", 
"text": "注册用户量(人)", 
"width": 1, 
"dot-style": { 
"type":"solid-dot", "colour":"#a44a80", "dot-size": 3, 
"tip":"#val#人<br>#x_label#" }, 
"on-show": {"type": "shrink-in", "cascade":1, "delay":0.5}, 
"values" : [(numbers)] 
} 
], 
"x_axis":{ 
"labels": { 
"labels":[(dates)] 
} 
}, 
"y_axis":{ 
"steps": (steps), 
"max": (max) 
} 
}

这是类的内容:
class TemplateData 
{ 
public $substitution; 
private $templateFile; 
function __construct($filename) 
{ 
$this->templateFile=@file_get_contents($filename) or die("not find templateFile"); 
} 
function __destruct() { 
unset ($this->templateFile,$this->substitution); 
} 
function setTemplateFile($tfile) 
{ 
$this->templateFile=$tfile; 
} 
function getTemplateFile() 
{ 
return $this->templateFile; 
} 
function replaceReal($matches) 
{ 
extract($this->substitution, EXTR_OVERWRITE); 
return isset($$matches[1])?$$matches[1]:$matches[1]; 
} 
function changeInfo($subs) 
{ 
$this->substitution=$subs; 
return preg_replace_callback("(\((\w+)\))",array(&$this, 'replaceReal'),$this->getTemplateFile()); 
} 
}

4,调用的代码
<!--//这里的myChat是显示flash的地方,所以不能为空,改动的话要在声明FlashChart类的时候定义,详细见FlashChart类--> 
<div class='content_box'><div id="myChart"></div></div> 
<?php 
include("flashchart.php"); 
include("templatedata.php"); 
$fc=new FlashChart('chart/',"100%",320); 
$infos=array( 
'numbers'=>"30000,10000,5000,6000000,700", 
'dates'=>"\"字符串1\",\"字符串2\",\"字符串3\",\"字符串4\",\"字符串5\"", 
'steps'=>600000, 
'max'=>6000000 
); 
$info=array("title"=>'用户注册统计','numbers'=>$infos['numbers'],'dates'=>$infos['dates'],'steps'=>$infos['steps'],'max'=>$infos['max']); 
$fc->setChart("chart/templatechart/user-add.txt",$info);

5,还有一个处理数据的函数,把查询出来的数据集转换成ofc用的数据
/** 
* @brief ofc数据处理 
* @params 数据库查询出关于x,y轴的数据的数据集 
* @note 后台 
*/ 
/* 
public function init_count($rs) 
{ 
$numbers =''; 
$dates = ''; 
$max = 0; 
foreach($rs as $row) 
{ 
$numbers .= $row['num'].',';//y轴数据 
$dates .='"'.$row['month'].'",';//x轴数据 
if($max<$row['num']) $max = $row['num']; 
} 
$steps=ceil($max/10); 
$result= array( 
'steps' => $steps, 
'numbers' => strlen($numbers)>1 ? substr($numbers,0,-1):null, 
'dates' => strlen($dates)>1 ? substr($dates,0,-1) : null, 
'max' => $max+$steps 
); 
return $result; 
}
PHP 相关文章推荐
网络资源
Oct 09 PHP
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
php 高性能书写
Dec 11 PHP
PHP中使用gettext来支持多语言的方法
May 02 PHP
PHP输出XML到页面的3种方法详解
Jun 06 PHP
php json与xml序列化/反序列化
Oct 28 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 PHP
PHP读取XML格式文件的方法总结
Feb 27 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 PHP
PHP中去掉字符串首尾空格的方法
May 19 #PHP
有关PHP中MVC的开发经验分享
May 17 #PHP
php的array_multisort()使用方法介绍
May 16 #PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 #PHP
php array的学习笔记
May 16 #PHP
php文件操作实例代码
May 10 #PHP
PHP图片验证码制作实现分享(全)
May 10 #PHP
You might like
php获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
2011/07/10 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
基于jquery封装的一个js分页
2011/11/15 Javascript
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
jQuery简单入门示例之用户校验demo示例
2016/07/09 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
Vue-router 切换组件页面时进入进出动画方法
2018/09/01 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
Python爬取APP下载链接的实现方法
2016/09/30 Python
Python爬取附近餐馆信息代码示例
2017/12/09 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
python七夕浪漫表白源码
2019/04/05 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
canvas绘制图片drawImage使用方法
2020/09/15 HTML / CSS
公司周年庆典邀请函
2014/01/12 职场文书
小学少先队活动方案
2014/02/18 职场文书
竞选大队委员演讲稿
2014/04/28 职场文书
校园文明倡议书
2014/05/16 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
英语复习计划
2015/01/19 职场文书
银行先进个人总结
2015/02/15 职场文书
少年雷锋观后感
2015/06/10 职场文书
sql中mod()函数取余数的用法
2021/05/29 SQL Server
解析Redis Cluster原理
2021/06/21 Redis
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏