分析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

推荐(0)
收藏

php静态、全局变量及包含路径

2007-12-20 9:48 pm

静态变量只在当前文件内共享变量;
全局变量在整个进程内共享变量;
require和include的路径取决于最后执行的php文件的路径,如果写相对路径要注意了;

推荐(0)
收藏