用php调用graphviz轻松画拓扑图-阿里云开发者社区

开发者社区> 技术小胖子> 正文

用php调用graphviz轻松画拓扑图

简介:
+关注继续查看
graphviz是一款古老的画拓扑图的工具,非常强大,能够按照你在文本文件里定义的格式转换为拓扑图,很多大公司都是用graphviz来画拓扑图,它的最主要的功能是用程序生成文本,然后调用graphviz来把文本转化为拓扑图。
1.安装graphviz
http://www.graphviz.org/Download..php里下载对应的平台的安装包;
我用的是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,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10098 0
nginx 中 PHP 调用PEAR.php遇到的问题
公司有个老项目,写了很多年了,是在apache 上面跑的,无意间,我想让它跑到nginx上,结果遇到了PEAR.php的问题,先安装pear 基本安富有就是 wget http://pear.php.
739 0
利用graphviz模块展示斐波那契数列的递归函数调用图(Python)
  在博客动态规划法(一)从斐波那契数列谈起中,在求解斐波那契数列的第n项时,我们采用了递归方法和动态规划法来求解,当然递归方法的效率很差。
1195 0
php链式调用
转自默默 http://bbs.phpchina.com/thread-237323-1-1.html 写程序的人都喜欢偷懒,希望少打几行代码,并且让代码看起来很酷。 所以很多人写程序都会选择三元运算取代if..else...。
779 0
PHP调用java的class
PHP调用java的class   转:http://hi.baidu.com/lei0827/blog/item/28439a4e923234ced1c86a18.html PHP调用java的class有2种方法     1、种是用php自身带的模块调用java(不过经过网友的证明发现这种方法不好)我没用。
778 0
【视觉智能开放平台】关于调用API上传图片url地址等相关问题
阿里云视觉智能开放平台(https://vision.aliyun.com/)目前已上线超过70种视觉AI能力,并通过API的形式提供给用户接入,用户在本地调用API接口时需要上传图片url地址进行识别,但本地调用和线上调式不同,经常会出现url错误的问题。今天就和大家说说这些错误的对应解决方案有哪些。
551 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13895 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
11893 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7366 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载