博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用php调用graphviz轻松画拓扑图
阅读量:7026 次
发布时间:2019-06-28

本文共 1107 字,大约阅读时间需要 3 分钟。

graphviz是一款古老的画拓扑图的工具,非常强大,能够按照你在文本文件里定义的格式转换为拓扑图,很多大公司都是用graphviz来画拓扑图,它的最主要的功能是用程序生成文本,然后调用graphviz来把文本转化为拓扑图。
1.安装graphviz
到 里下载对应的平台的安装包;
我用的是centos因此用yum安装最方便

 

 
  1. wget http://www.graphviz.org/graphviz-rhel.repo /etc/yum.repos.d/graphviz-rhel.repo  
  2. yum install graphviz 

 

 

2.安装完毕后进行测试

 

 
  1. echo “digraph G {Hello->World}” | dot -Tpng >hello.png 

 

 

3.php 调用graphviz

首先用程序生成/tmp/domain.txt,然后用dot命令生成图片

 

 
  1. <?php  
  2.    header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past  
  3.  
  4.    header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified  
  5.  
  6.    header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1  
  7.  
  8.    header ("Pragma: no-cache"); // HTTP/1.0  
  9.  
  10.    header ("Content-type: image/gif");  
  11.    $filename = '/tmp/domain.txt';  
  12.    $somecontent = "digraph G {a->b->c->a}";  
  13.     if (!$handle = fopen($filename, 'w')) {  
  14.          echo "cannot open $filename";  
  15.          exit;  
  16.     }  
  17.     if (fwrite($handle, $somecontent) === FALSE) {  
  18.         echo "cannot write to $filename";  
  19.         exit;  
  20.     }  
  21.     fclose($handle);  
  22.  
  23.    passthru("dot -Tpng $filename");  
  24. // passthru("cat $filename | dot -Tpng");  
  25.  
  26. ?> 

end

 

     本文转自yifangyou 51CTO博客,原文链接:http://blog.51cto.com/yifangyou/605769,如需转载请自行联系原作者

你可能感兴趣的文章
数据库读写分离的初步理解
查看>>
[转]window下使用SetUnhandledExceptionFilter捕获让程序的崩溃
查看>>
Codeforces Beta Round #9 (Div. 2 Only) A. Die Roll 水题
查看>>
代码的组织机制
查看>>
html基础之 input:type
查看>>
json-lib简单处理json和对json的简单介绍
查看>>
jquery checkbox选中、改变状态、change和click事件
查看>>
java joor 实现反射简单调用
查看>>
Guava 8-区间
查看>>
自定义Spark Partitioner提升es-hadoop Bulk效率
查看>>
总结一些机器视觉库
查看>>
在CentOS Linux下部署Activemq 5
查看>>
把mysql脚本或其他数据库脚本导入Powerdesigner
查看>>
phalcon 连接多个数据库 phalcon multi-database
查看>>
React Native(十一)——按钮重复点击事件的处理
查看>>
机器学习笔记(4):多类逻辑回归-使用gluton
查看>>
26.angularJS $routeProvider
查看>>
内存映射函数remap_pfn_range学习——示例分析(2)
查看>>
年轻的工程师如何月入伍万XD
查看>>
NAT64与DNS64基本原理概述
查看>>