<div id="myChart" style="width:700px;height:560px"></div>
引入echarts百度图表插件和全国各地数据china.js
<script type="text/javascript"" width=100% src="js/echarts.min.js"></script>
<script type="text/javascript"" width=100% src="http://libs.useso.com/js/jquery/1.9.0/jquery.min.js"></script>
<script type="text/javascript"" width=100% src="js/china.js"></script>
接下来设置echarts相关属性和api接口
option = {
title: {
text: '2015年GDP统计数据',
subtext: '数据来源网络(单位:万亿元)',
left: 'center'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c}万亿元"
},
visualMap: {
min: 0,
max: 10,
left: 'left',
top: 'bottom',
orient: 'horizontal',
text: ['高', '低'], // 文本,默认为数值文本
calculable: true //是否启用值域漫游,即是否有拖拽用的手柄,以及用手柄调整选中范围。
},
toolbox: {//工具栏
show: true,
orient: 'vertical', //垂直
left: 'right',
top: 'center',
feature: {
mark: {show: true},
saveAsImage: {show: true} //保存为图片
}
},
series: [
{
name: '2015年GDP',
type: 'map',
mapType: 'china',
roam: false, //是否开启鼠标缩放和平移
itemStyle: {
normal: {label: {show: true}},
emphasis: {label: {show: true}}
},
data: []
}
]
};
var myChart = echarts.init(document.getElementById('myChart'));
myChart.showLoading();
myChart.setOption(option);
最后远程加载中国地图数据
$.ajax({
type: "post",
async: false, //同步执行
url: "mapdata.php",
dataType: "json", //返回数据形式为json
success: function(result) {
myChart.hideLoading(); //隐藏加载动画
myChart.setOption({//渲染数据
series: [{
// 根据名字对应到相应的系列
name: '2015年GDP',
data: result
}]
});
},
error: function() {
alert("请求数据失败!");
}
});
PHP读取中国省份表
$sql = "select * from echarts_map";
$query = mysql_query($sql);
while($row=mysql_fetch_array($query)){
$arr[] = array(
'name' => $row['province'],
'value' => $row['gdp']
);
}
最后附上中国省份地图表
CREATE TABLE IF NOT EXISTS `echarts_map` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`province` varchar(45) NOT NULL,
`gdp` decimal(10,2) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
注:使用try{}catch{}不能铺货WARNING错误,需要自己定义捕获错误的函数,例如:
set_error_handler(function () {
throw new Exception('Ach!');
});
try {
$result = 4 / 0;
} catch( Exception $e ){
echo "Divide by zero, I don't fear you!".PHP_EOL;
$result = 0;
}
restore_error_handler();
第一、安装、升级且确定PHP版本
如果我们采用的是WDCP默认版本,官方默认包是PHP5.2,一般我们肯定是需要升级PHP版本的,毕竟PHP5.2的处理信息能力还是比较慢的,虽然不要求我们升级到PHP7,毕竟支持7版本的程序兼容性还需要一段时间。
这里如果我们需要升级WDCP面板PHP环境,可以参考的文章:
鉴于这位网友的实际环境,我在本地测试机中安装默认WDCP面板之后,升级至PHP5.3.17版本。
sh php_up53.sh
代码如下 | 复制代码 |
/www/wdlinux/php/bin/phpize
|
代码如下 | 复制代码 |
./configure --with-php-config=/www/wdlinux/php/bin/php-config --enable-soap
make make install |
这里我们需要留下这一段:
代码如下 | 复制代码 |
extension=/www/wdlinux/apache_php-5.3.17/lib/php/extensions/no-debug-non-zts-20090626/soap.so
|
第三、重启生效soap
第四、WDCP安装soap扩展总结
通过上面的步骤,还是很简单的就可以在WDCP面板环境中安装SOAP扩展的,主要是要基于PHP安装目录中的文件编译,不同的PHP版本,然后在PHP.INI文件中添加重启服务器就可以生效。
trim — 去除字符串首尾处的空白字符(或者其他字符)
用法:
string trim ( string $str [, string $charlist = ” \t\n\r\0\x0B” ] )
trim函数大家应该不会陌生,从4.1.0 新增可选的 charlist 参数。默认的用法就不多说了,说说在使用到第二个参数的情况:
$path = trim(dirname(__FILE__), ‘/’).’/’; // 保证$path只有一个/结束
这种用法也是没有问题的。那什么情况下会出问题?再举个例子:
$domain = trim(‘www.example.com.tw’, ‘www.’); // 大家期望的结果是example.com.tw,可实际的结果却是example.com.t,tw中的w没了。
问题出现在第二个参数$charlist,它代表的是一个字符列表,而不是一个单纯的字符串,所以tw的w属于www.这个列表中的一员,被一起去掉了。具体可以再参考trim
替代方法:
$domain = preg_replace(‘/^www\.|www\.$/’, ”, ‘www.example.com.tw’);
imagettftext是一个图形处理函数了,如果在使用imagettftext函数时碰到Call to undefined function imagettftext()的话就是函数组件没有打开了,所以我们只需要简单的配置即可。在一个新环境中装Tipask v2.5的时候发现后台验证码无法显示。出错的函数是imagettftext(),由于index.php使用了error_reporting(0)将错误隐去,导致这次莫名的错误,去掉,错误立马出现:
Fatal error: Call to undefined function imagettftext()
现在我们就明确了,出现错误的原因是PHP编译时没有加上FreeType。
解决办法
首先编译安装FreeType,以2.4.0为例:
wget http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2
tar -jxf freetype-2.4.0.tar.bz2
cd reetype-2.4.0
# 安装到/usr/local/freetype
./configure –prefix=/usr/local/freetype
make && make install
下面我们重新编译PHP,加上参数–with-freetype-dir=/usr/local/freetype
./configure –with-freetype-dir=/usr/local/freetype
编译完成重启php
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
再GD库中找到FreeType Support说明安装成功!
需要注意的是,如果服务器freetype的版本是1.*,那么你可能需要改变编译参数为–with-ttf[=DIR],以下转自ChinaUnix论坛:
字库 配置开关
FreeType 1.x 要激活 FreeType 1.x 的支持,加上 –with-ttf[=DIR]。
FreeType 2 要激活 FreeType 2 的支持,加上 –with-freetype-dir=DIR。
T1lib 要激活 T1lib(Type 1 字体),加上 –with-t1lib[=DIR]。
本地 TrueType 字符串函数 要激活本地 TrueType 字符串函数的支持,加上 –enable-gd-native-ttf。