openflashchart 2.0 简单案例php版

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;
}

(0)

相关推荐

  • openflashchart 2.0 简单案例php版

    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="",$wid

  • php编程实现简单的网页版计算器功能示例

    本文实例讲述了php编程实现简单的网页版计算器功能.分享给大家供大家参考,具体如下: 如何通过php代码来实现一个网页版的计算器的简单功能?下面就是通过php基础知识来做的网页版计算器,功能只有"加减剩除求余",其他的一些计算功能可扩展. 实现简单计算器的具体php代码如下(这是php文件jsq.php的全部代码): <html> <head> <title>这是一个网页版的简单计算器</title> <meta http-equi

  • js编写三级联动简单案例

    刚给学妹写了个简单的地区的三级联动简单案例,分享给正在学习的朋友参考下 <html> <head> <!--导入jquery--> <script type="text/javascript"src="jquery1.7.1.js"></script> </head> <script type="text/javascript"> $(function(){//页

  • 实例详解java Struts2的配置与简单案例

    Struts2的配置与简单案例: 1. 创建一个dynamic web project(创建时让它自动生成web.xml文件) 2.引入相关jar包 3.在web.xml中进行配置 (启动tomcat服务器之后第一个加载的文件就是web.xml) 在配置中添加过滤器: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filte

  • mysql 8.0.12 解压版安装教程 个人亲测!

    Mysql8.0.12解压版安装方法亲测,供大家参考 1.下载(官方推荐的是下载安装板,但是之前一直用,想试一下解压版,毕竟更简单嘛),下载地址 2.解压 这就是解压后的目录,但是我们需要在这个基础上做两步小操作 (1)创建一个名为data的文件夹 (2)创建一个名为my.ini的文件 3.修改my.ini文件 [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysq

  • seajs和requirejs模块化简单案例分析

    本文实例讲述了seajs和requirejs模块化.分享给大家供大家参考,具体如下: 如今,webpack.gulp等构件工具流行,有人说seajs.requirejs等纯前端的模块化工具已经被淘汰了,我不这么认为,毕竟纯前端领域想要实现模块化就官方来讲,还是有一段路要走的.也因此纯前端的模块化工具依然有价值,而且就我了解一些中小企业一直都在用纯前端的模块化手段. 如今,重新关注seajs和requirejs,不求理解多么深刻,要求会用能用就可以. 模块化的起因是传统的直接引入js方法存在问题:

  • SpringBoot整合mybatis简单案例过程解析

    这篇文章主要介绍了SpringBoot整合mybatis简单案例过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.在springboot项目中的pom.xml中添加mybatis的依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifac

  • django开发post接口简单案例,获取参数值的方法

    项目环境:python3.6,django2.1 接口功能: 将传入参数a和b字符串相加,返回结果 1.新建一个django项目 # 新建一个名为Post的项目 django-admin startproject Post 2.在django-test/Post/Post 文件夹下 创建一个view.py文件 3.在view.py文件中写入代码 from django.http import HttpResponse import json # 定义功能 def add_args(a, b):

  • Mysql8.0.22解压版安装教程(小白专用)

    1.资源下载 官网下载地址:https://dev.mysql.com/downloads/mysql/ 2.软件解压 2.1选择位置 需要注意的一点,解压的路径尽量避免出现中文,不然后期会报错. 2.2 更改名字(去文件明后缀) 这里如果不这样子修改,后期可能会报错!亲测. 3.配置文件 3.1 创建my.ini文件 把文本后缀改成ini,并且保存为ANSI格式即可. 这里不修改,可能会造成4.2.2里的错误2,亲测!: 3.2 更改my.ini文件内容 把my.ini用你电脑上的代码编写器打

  • Python 函数简单易理解版

    目录 Python 函数 一.什么是模块化程序设计? 1. 编写流程--自顶向下 2.函数在模块化设计的作用 二.实战 1.功能简介 2.通讯录功能简介 3.主程序入口 4.主程序包含以下功能 5.用什么数据结构来描述一个联系人 6.用什么数据结构来描述一个通讯录 三.函数实现 1.主函数代码实现 2.添加联系人代码实现 3.列出联系人代码实现 4.查出联系人代码实现 5.删除联系人代码实现 6.运行效果 Python 函数 一.什么是模块化程序设计? 在进行程序设计时将一个大程序按照功能划分为

随机推荐