分析php include require 情况
2009-10-14 9:04 am其实php有get_include_files()函数可以打印出被引入的文件,也包括html等这样的文件,如果只想看文件的包含情况,这就够了,现在来介绍一个更好玩的东西,能通过图表来查看php引入文件的情况,这对程序的分析和调优还是很有好处的。
首先安装pecl扩展,inclued:
wget ......inclued.tar.gz tar .... cd ... phpize ./configure make make install
这些命令就不具体写了,流程是这个样子的(其实在inclued的文档中都有)。
安装好后在php.ini中加入:
extension=inclued.so inclued.enabled = On inclued.dumpdir = /tmp/
apache restart
然后在你需要分析的php文件底部写入以下代码:
$fp = fopen('/tmp/wp.json', 'w');
if ($fp) {
$clue = inclued_get_data();
if ($clue) {
fwrite($fp, json_encode($clue));
}
fclose($fp);
}
在/tmp下能看到保存后json数据了,
接下来把inclued中的gengraph.php文件cp到/tmp下,
执行php gengraph.php -i (生成的json文件)
你会看到dot的文件和提示画图的命令"dot ....",接下来就是画图了,安装graphviz,
apt-get install graphviz
在执行前面提示的dot....就可以了看到include.png图片了。
如:

这个是缩图,全图比较大点,需要请查看
http://ls5pqq.blu.livefilestore.com/y1pTgyhqzYh7Eui6cIYW3-1Rq16w2-JqeeFy8k5fYXVKUV-Gpr9cG6UFaULrcXDtHQITpe77Qv9-APg1YkolS2cFOwzftvJqX2T/inclued_autoload.png