文章主要介紹了PHP實現股票趨勢圖和柱形圖,本文效果基於pchart類庫實現,給出實現程式碼和效果圖,需要的`朋友可以參考下。
基於強大的pchart類庫。 <?php
/*
* 股票趨勢圖和柱形圖
* @author: Skiychan >
* @created: 02/05/2015
*/
include "libs/";
include "libs/";
include "libs/";
include "";
include "libs/";
date_default_timezone_set('Asia/Shanghai');
/*
* @param type line/other 趨勢圖/柱形圖 預設趨勢圖
* @param txt 1/other 顯示/不顯示 提示文字 預設不顯示
* @param lang hk/cn 繁體中文/簡體中文 預設繁體
* @param id int 股票編號 必填
* @param min int 最小時間 預設無
* @param max int 最大時間 預設無
*/
$type = isset($_GET['type']) ? $_GET['type'] : 'line';
$showtxt = (isset($_GET['txt']) && ($_GET['txt'] == 1)) ? true : false;
//設定語言
if (isset($_GET['lang'])) {
$lang = $_GET['lang'] == 'cn' ? 'cn' : 'hk';
} else {
$lang = 'hk';
}
$desc_tip = array(
'hk' => array(
'line' => array("昨日收盤價", "股價"),
'bar' => "總成交量:"
),
'cn' => array(
'line' => array("昨日收盤價", "股價"),
'bar' => "總成交量:"
)
);
$id = isset($_GET['id']) ? (int)$_GET['id'] : 1; //股票編碼
//條件
$wheres = "where stock_no = ".$id;
//最小時間
if (isset($_GET['min'])) {
$wheres .= " and `created` >= ".(int)$_GET['min'];
}
//最大時間
if (isset($_GET['max'])) {
$wheres .= " and `created` <= ".(int)$_GET['max'];
}
$wheres .= " order by created";
$sth = $dbh->prepare("SELECT * FROM $tb_name " . $wheres);
$sth->execute();
$results = $sth->fetchAll(PDO::FETCH_ASSOC);
if ($lang == 'hk') {
$ttf_path = "fonts/zh_";
} else {
$ttf_path = "fonts/zh_";
}
//初始化
$line2 = array(); //股價
$bar = array(); //成交量
$times = array(); //時間
foreach ($results as $keys => $values) :
$line2[] = $values['current_price'];