PHP jpgraph库的配置及生成统计图表
JpGraph简介
JpGraph是开源的PHP统计图表生成库,基于PHP的GD2图形库构建,把生成统计图的相关操作封装,隐藏了部分复杂的操作,使在PHP页面上输出统计图表变得更加容易。JpGraph的官方网站为:http://jpgraph.net,开发者可以在上面免费下载最新版的JpGraph和阅读相关帮助文档或示例程序。
JpGraph的配置
(1)修改文件php.ini
在include_path中添加jpgraph的目录路径,并将jpgraph解压后的src目录名称更改为jpgraph。
(2)检查PHP是否支持GD库
在php.ini文件中找到语句;extension=php_gd2.dll。把上述语句前的;号去掉,即去掉注释。如果因为PHP版本不同而找不到此语句,则可直接添加extension=php_gd2.dll
(3)修改文件jpgraph_gb2312.php
找到函数:function gb2utf8($gb)
把函数修改为:
代码如下 | 复制代码 |
functiongb2utf8($gb) { return$gb; } |
即不使用gb2编码方式转utf8方式的那段代码。
折线图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_line.php");
$data1=array(523,634,371,278,685,587,490,256,398,545,367,577);//第一条曲线的数组
$graph=newGraph(500,300); $graph->SetScale("textlin"); $graph->SetShadow(); $graph->img->SetMargin(60,30,30,70);//设置图像边距
$graph->graph_theme = null;//设置主题为null,否则value->Show(); 无效
$lineplot1=newLinePlot($data1);//创建设置两条曲线对象 $lineplot1->value->SetColor("red"); $lineplot1->value->Show(); $graph->Add($lineplot1);//将曲线放置到图像上
$graph->title->Set("CDN流量图"); //设置图像标题 $graph->xaxis->title->Set("月份");//设置坐标轴名称 $graph->yaxis->title->Set("流 量(Gbits)"); $graph->title->SetMargin(10); $graph->xaxis->title->SetMargin(10); $graph->yaxis->title->SetMargin(10);
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体 $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth()); $graph->Stroke();//输出图像 ?> |
柱状图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_bar.php");
$data=array(19,23,34,38,45,67,71,78,85,87,96,145); $ydata=array("一","二","三","四","五","六","七","八","九","十","十一","十二");
$graph=newGraph(500,300);//创建新的Graph对象 $graph->SetScale("textlin");//刻度样式 $graph->SetShadow(); //设置阴影 $graph->img->SetMargin(40,30,40,50);//设置边距
$graph->graph_theme = null;//设置主题为null,否则value->Show(); 无效
$barplot=newBarPlot($data);//创建BarPlot对象 $barplot->SetFillColor('blue');//设置颜色 $barplot->value->Show();//设置显示数字 $graph->Add($barplot);//将柱形图添加到图像中
$graph->title->Set("CDN流量图"); $graph->xaxis->title->Set("月份");//设置标题和X-Y轴标题 $graph->yaxis->title->Set("流 量(Mbits)"); $graph->title->SetColor("red"); $graph->title->SetMargin(10); $graph->xaxis->title->SetMargin(5); $graph->xaxis->SetTickLabels($ydata);
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);//设置字体 $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD); $graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD); $graph->Stroke(); ?> |
饼状图
代码如下 | 复制代码 |
<?php require_once("jpgraph/jpgraph.php"); require_once("jpgraph/jpgraph_pie.php"); require_once("jpgraph/jpgraph_pie3d.php");
$data=array(19,23,34,38,45,67,71,78,85,87,90,96);
$graph=newPieGraph(550,500); $graph->SetShadow();
$graph->title->Set("CDN流量比例"); $graph->title->SetFont(FF_SIMSUN,FS_BOLD);
$pieplot=newPiePlot3D($data);//创建PiePlot3D对象 $pieplot->SetCenter(0.4, 0.5);//设置饼图中心的位置 $pieplot->SetLegends($gDateLocale->GetShortMonth());//设置图例 $graph->Add($pieplot); $graph->Stroke(); ?>
|
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!
本篇文章主要介绍了PHP读取Excel类文件的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧想要使用PHP读取Excel文件必然要用到PHPExcel开源类库,网上资源应该挺多的。但是每一种的操作必然都是不同的,可原理应该都是大同小异。
这个文件夹里包含的就是PHPExcel类文件
,在外面还有一个入口PHP文件
处理机制:1.读取Excel文件
2.获取最大行号和最大列号
3.通过行数循环里面嵌套列数循环来用特殊符号拼接每个小表格里面的数据得到一个字符串
4.然后使用explode拆分函数将字符串拆分后就得到了一个二维数组(即表格里面的数据)。
代码示例
代码如下 | 复制代码 |
$path="/wamp/www/xiong/hadf"; if(is_dir($path)){ echo"存在"; }else{ mkdir($path, 0777, true); echo"chuangji"; } require_once"./PHPExcel.php"; $filePath="./1233.xlsx"; $PHPReader=newPHPExcel_Reader_Excel2007(); if(!$PHPReader->canRead($filePath)) { $PHPReader=newPHPExcel_Reader_Excel5(); if(!$PHPReader->canRead($filePath)) { echo'no Excel' exit; } } $PHPExcel=$PHPReader->load($filePath); /**读取excel文件中的第一个工作表*/ $currentSheet=$PHPExcel->getSheet(0); /**取得最大的列号*/ $allColumn=$currentSheet->getHighestColumn(); // echo $allColumn;exit; /**取得一共有多少行*/ $allRow=$currentSheet->getHighestRow(); /**从第二行开始输出,因为excel表中第一行为列名*/ $val='' for($currentRow= 1;$currentRow<=$allRow;$currentRow++) { /**从第A列开始输出*/ for($currentColumn='A'$currentColumn<=$allColumn;$currentColumn++) { $val.=$currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow);//->getValue();/**ord()将字符转为十进制数*/ $val.="&%|%&"; /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将GBK编码转为UTF-8编码输出*/ //$val .= iconv('GBK','UTF-8', $val); } $val.="\n"; }$member_info_arr=explode("\n",$val); unset($member_info_arr[count($member_info_arr) - 1]); $present_time=date("Y-m-d H:i:s"); if(count($member_info_arr) <= 0) { sys_msg_json(0,"会员信息文件中无数据,请添加"); } unset($member_info_arr[0]); // var_dump($member_info_arr);exit; foreach($member_info_arras$key=>$val) { $arr[$key] =explode("&%|%&",$val); } // var_dump($arr);exit; foreach($arras$key=>$val) { unset($arr[$key][2]); } var_dump($arr); |
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!
这篇文章主要为大家详细介绍了php使用curl实现ftp文件下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下本文实例为大家分享了php实现ftp文件下载功能,供大家参考,具体内容如下
不知道为什么用正常的ftp_get函数下载文件速度特别慢,但是用ftp的客户端下载很快,所以换了curl的下载方式,速度正常
代码如下 | 复制代码 |
functionfile_upload($ftpIp,$ftpUser,$ftpPwd,$path,$fileSavePath){ $curlobj= curl_init();//初始化 //传入ftp的目标文件,如'ftp://192.168.3.1/test/1.jpg' curl_setopt($curlobj,CURLOPT_URL,"ftp://".$ftpIp."/".$path); curl_setopt($curlobj,CURLOPT_HEADER,0);//不输出header curl_setopt($curlobj,CURLOPT_RETURNTRANSFER,0); //time out after 300s curl_setopt($curlobj,CURLOPT_TIMEOUT,2000);//超时时间 //通过这个函数设置ftp的用户名和密码,没设置就不需要! curl_setopt($curlobj,CURLOPT_USERPWD,$ftpUser.':'.$ftpPwd);
$outfile=fopen($fileSavePath,'w+');//保存到本地文件的文件名 curl_setopt($curlobj,CURLOPT_FILE,$outfile);
$rtn= curl_exec($curlobj); if(curl_errno($curlobj)){ writeLog('Curl error: '. curl_error($curlobj)); } fclose($outfile); curl_close($curlobj); if($rtn== 1){ returntrue; }else{ unlink($fileSavePath);//如果下载失败,但是本地open了这个文件,所以要删除 returnfalse; }
} |
测试下载小文件是正常的,但是如果网速很慢,下载大文件时候,会报一个ftp timeout的错误,目前还在不知道是哪里配置问题,还是什么问题。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本网站。
本篇文章主要介绍了利用PHPExcel读取Excel的数据和导出数据到Excel的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧PHPExcel是一个PHP类库,用来帮助我们简单、高效实现从Excel读取Excel的数据和导出数据到Excel。也是我们日常开发中,经常会遇到的使用场景。比如有个客户信息表,要批量导出发给同事,我们就可以用PHPExcel来快速实现。同样,如果我们要利用短信群发接口去群发信息,PHPExcel可以快速导入客户信息,避免人工录入信息的麻烦。
PHPExcel使用教程:
首先下载PHPExcel
到https://github.com/PHPOffice/PHPExcel下载PHPExcel,如果不懂得使用git,可以到这https://codeload.github.com/PHPOffice/PHPExcel/zip/1.8下载压缩包,懂得的自行用git下载。
下载好文件,解压可以得到如下文件:
PHPExcel
好了,现在我们就可以用PHPExcel愉快的读取和制作表格了!
PHPExcel DEMO1:利用PHPExcel读取excel信息:
我们在根目录创建一个名为read.php的文件来读取文档,创建一个test.xlsx的文件,里面写的信息如下:
然后在read.php写以下代码:
代码如下 | 复制代码 |
<?php include‘./Classes/PHPExcel/IOFactory.php'
$inputFileName= ‘./test.xls' date_default_timezone_set(‘PRC'); // 读取excel文件 try{ $inputFileType= PHPExcel_IOFactory::identify($inputFileName); $objReader= PHPExcel_IOFactory::createReader($inputFileType); $objPHPExcel=$objReader->load($inputFileName); }catch(Exception$e) { die(‘加载文件发生错误:”‘.pathinfo($inputFileName,PATHINFO_BASENAME).'”: ‘.$e->getMessage()); }
// 确定要读取的sheet,什么是sheet,看excel的右下角,真的不懂去百度吧 $sheet=$objPHPExcel->getSheet(0); $highestRow=$sheet->getHighestRow(); $highestColumn=$sheet->getHighestColumn();
// 获取一行的数据 for($row= 1;$row<=$highestRow;$row++){ // Read a row of data into an array $rowData=$sheet->rangeToArray(‘A' . $row . ‘:'.$highestColumn.$row, NULL, TRUE, FALSE); //这里得到的rowData都是一行的数据,得到数据后自行处理,我们这里只打出来看看效果 var_dump($rowData); echo“ } |
得到的数据:
PHPexcel读取文件
PHPExcel DEMO2:利用PHPExcel导出信息到excel:
代码如下 | 复制代码 |
<?php
/** Error reporting */ error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); date_default_timezone_set('PRC');
/** 引入PHPExcel */ require_oncedirname(__FILE__) .'./Classes/PHPExcel.php'
// 创建Excel文件对象 $objPHPExcel=newPHPExcel(); // 设置文档信息,这个文档信息windows系统可以右键文件属性查看 $objPHPExcel->getProperties()->setCreator("作者简庆旺") ->setLastModifiedBy("最后更改者") ->setTitle("文档标题") ->setSubject("文档主题") ->setDescription("文档的描述信息") ->setKeywords("设置文档关键词") ->setCategory("设置文档的分类");
//根据excel坐标,添加数据 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A1','你好') ->setCellValue('B2','世界') ->setCellValue('C1','你好') ->setCellValue('D2','世界');
// 混杂各种符号, 编码为UTF-8 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A4','Miscellaneous glyphs') ->setCellValue('A5','éàèùâêîôûëïüÿäöüç');
$objPHPExcel->getActiveSheet()->setCellValue('A8',"你好世界"); $objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); $objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);
$value="-ValueA\n-Value B\n-Value C"; $objPHPExcel->getActiveSheet()->setCellValue('A10',$value); $objPHPExcel->getActiveSheet()->getRowDimension(10)->setRowHeight(-1); $objPHPExcel->getActiveSheet()->getStyle('A10')->getAlignment()->setWrapText(true); $objPHPExcel->getActiveSheet()->getStyle('A10')->setQuotePrefix(true);
// 重命名工作sheet $objPHPExcel->getActiveSheet()->setTitle('第一个sheet');
// 设置第一个sheet为工作的sheet $objPHPExcel->setActiveSheetIndex(0);
// 保存Excel 2007格式文件,保存路径为当前路径,名字为export.xlsx $objWriter= PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel2007'); $objWriter->save('export.xlsx'); // 保存Excel 95格式文件,,保存路径为当前路径, $objWriter= PHPExcel_IOFactory::createWriter($objPHPExcel,'Excel5'); $objWriter->save('export.xls'); |
好了,执行后我们可以得到export.xls和export.xlsx。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持本网站!
相关文章
- 本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
- 这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Element图表初始大小及窗口自适应实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-10
- 下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
- 关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
- 经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
- 这篇文章主要介绍了C#实现绘制面形图表的方法,对于C#初学者很好的掌握C#图形绘制有一定的借鉴价值,需要的朋友可以参考下...2020-06-25
- js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
- 这篇文章主要介绍了如何使用RoughViz可视化Vue.js中的草绘图表,帮助大家更好的理解和使用roughViz,感兴趣的朋友可以了解下...2021-01-31
- 验证码是一个现在WEB2.0中常见的一个功能了,像注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性,我们会看到有些网站没有验证码,但那是更高级的验证了,...2016-11-25
- 复制代码 代码如下:function getTagStyle(){ $minFontSize=8; //最小字体大小,可根据需要自行更改 $maxFontSize=18; //最大字体大小,可根据需要自行更改 return 'font-size:'.($minFontSize+lcg_value()*(abs($maxFo...2013-10-04
- 众所周知echarts是一个纯JavaScript的图标库,下面这篇文章主要给大家介绍了关于Echarts实例之树形图表的实现方法,需要的朋友可以参考下...2021-08-06
- 解决办法:$str=”QB”.str_pad(($maxid[0]["max(id)"]+1),5,”0″,STR_PAD_LEFT ); 其中$maxid[0]["max(id)"]+1) 是利用max函数从数据库中找也ID最大的一个值, ID为主键,不会重复。 str_pad() 函数把字符串填充为指...2013-10-04
- 这篇文章主要介绍了C#生成Word文档代码示例,本文直接给出代码实例,需要的朋友可以参考下...2020-06-25
- 本篇文章介绍了C# 绘制统计图大全,其中包括状图, 折线图, 扇形图,有需要的同学可以了解一下。...2020-06-25
- 下面小编就为大家带来一篇JS生成某个范围的随机数【四种情况详解】。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-04-22
- 这篇文章主要介绍了matplotlib 三维图表绘制方法简介,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-21
- 这篇文章主要介绍了PHP简单实现生成txt文件到指定目录的方法,简单对比分析了PHP中fwrite及file_put_contents等函数的使用方法,需要的朋友可以参考下...2016-04-28
- 本文主要介绍了Vue组件文档生成工具库的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-11