ホームページ >php教程 >php手册 >openflashchart 2.0 単純なケースの php バージョン

openflashchart 2.0 単純なケースの php バージョン

WBOY
WBOYオリジナル
2016-06-13 12:00:321054ブラウズ

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 '';
echo '';
echo '';
$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 '';
}
}


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#人
#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,调用的代码

复制代码 代码如下:






include("flashchart.php");
$fc=new FlashChart('chart/',") 100%",320);
$infos=array(
'numbers'=>"30000,10000,5000,6000000,700",
'dates'=>""String 1 " ,"String2","String3","String4","String5"",
'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 = '';
foreach($rs as $row)
{

$numbers .= $row['num'].',';//y 軸データ
$dates .='"'.$row['month'].'",'; //x 軸データif($max$steps=ceil($max/10); (
'steps' => $steps,
'numbers' => strlen($numbers)>1 ? substr($numbers,0,-1):null ,
'dates' => strlen($dates)>1 ? substr($dates,0,-1) : null,
'max' => $max $steps
);
}


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。