利用PHP的Popen实现RRDTOOL作图的动态输出
来源:互联网 发布:淘宝怎么优化关键词 编辑:程序博客网 时间:2024/05/16 14:36
最近看了一下RRDTOOL如何作图,语法确实比较繁琐,但不是太难。命令行下执行的时候,每次都需要输出成为一个文件。我们希望做一个应用,能够动态生成图表,看了看Cacti的实现方法,核心的部分就是使用了popen这个函数,将命令的输出放到了管道中,然后循环读取所有的数据,完成后,再以图片的形式输出到客户端。这样用户就能够看到动态的图片而不需要进行物理的存储了,下面是我截取的代码段,供大家参考。
error_reporting(E_ALL);
//作图命令,注意看 graph 后面加了一个连接符
$command = '/opt/rrdtool/bin/rrdtool graph - --start=-86400 --end=-300 --title=Test --height=400 --width=800 DEF:value1="/home/echo/workspace/misc/tianjin_dpool_web_21_traffic_in_22.rrd":traffic_in:AVERAGE AREA:value1#ff0000 2>&1';//测试管道符
session_write_close();//用管道的方式执行命令,并且接收错误输出
$handle = popen("$command 2>&1", 'r');
$read = '';
while (!feof($handle)) {
$read .= fgets($handle, 4096);
}
pclose($handle);
echo $read;// Set the proper headers to allow caching
$this->request->headers['Content-Type'] = File::mime_by_ext('png');
$this->request->headers['Content-Length'] = strlen($read);
$this->request->headers['Last-Modified'] = date('r', time());
- 利用PHP的Popen实现RRDTOOL作图的动态输出
- 利用popen实现的system函数
- popen函数的实现
- JRobin RRDTool的一个纯Java实现
- popen函数实现捕获shell里命令的输出--外加自己的一个小接口函数
- 利用rrdtool 进行数据的收集绘图统计,网页显示
- 支持Cacti运作的PHP+RRDtool环境配置方法 -1
- 支持Cacti运作的PHP+RRDtool环境配置方法 -2
- 支持Cacti运作的PHP+RRDtool环境配置方法 -3
- 支持Cacti运作的PHP+RRDtool环境配置方法 -4
- 支持Cacti运作的PHP+RRDtool环境配置方法 -5
- RRDtool 的学习记录
- RRDtool的基础教学
- rrdtool的完整例子
- 用popen实现在PHP代码异步调用服务器端的shell脚本
- 用popen实现在PHP代码异步调用服务器端的shell脚本
- popen实现PHP并发方法
- PHP中动态HTML的输出技术
- 欢迎使用CSDN-markdown编辑器
- FS ext2_super_block
- jks读取密钥
- 高德、百度地图自定义底图
- 【人脸识别】人脸验证算法Joint Bayesian详解及实现(Python版)
- 利用PHP的Popen实现RRDTOOL作图的动态输出
- Cygwin使用之神器apt-cyg安装与使用
- 最小堆排序
- CentOS7安装MySQL冲突和问题解决小结
- Java正则表达式学习
- autonomous_transaction
- UESTC 87 Easy Problem With Numbers(扩展欧几里得+线段树)
- 学习笔记
- lib与dll文件的区别与联系