使用函数查询项目里使用的所有数据表的名字

 1 
16 php
17 //$dir =  dirname(getcwd());
18 //$filepath = $dir.'\\'.'communication'.'\\'.'mod_index.php';
19 header("Content-Type:text/html;Charset=utf-8");
20 $path = dirname(getcwd());
21 $direction = dir($path);
22 
23 $allow = array(
24 
25 );
26 $result = array();
27 getTables($direction);
28 $direction->close();
29 printTable($result);
30 
31 
32 /**
33  * 获得此目录下的所有php文件查询语句使用到的table表名
34  * @param $direction 目录控制句柄
35  */
36 function getTables($direction){
37     global $allow,$result;
38     while(($file = $direction->read()) != false){
39         $tables = array();
40         if($file != '.' && $file != '..' && strpos($file,'.') && strstr($file,'.') == '.php'){
41             $filepath =  getPath($direction->path,$file);
42            $content = file_get_contents($filepath);
43             preg_match_all("/DB_TABLEPRE.[\"|']([^\s'\"]*)/i",$content,$tables);
44             $tables = array_unique($tables[1]);
45             $result = array_merge($result,$tables);
46         }elseif(is_dir($childdir = getPath($direction->path,$file))){
47             if(in_array($file,$allow)){
48                 $dir = dir($childdir);
49                 getTables($dir);
50                 $dir->close();
51             }else{
52                 continue;
53             }
54         }
55     }
56 }
57 
58 
59 /** 获得完成路径
60  * @param $dir
61  * @param $file
62  * @return string
63  */
64 function getPath($dir,$file){
65     return $dir.'\\'.$file;
66 }
67 
68 /** 打印表格
69  * @param $arr
70  */
71 function printTable($arr){
72     $arr = array_unique($arr);
73     $html = '
    '; 74 $num = 0; 75 foreach($arr as $k){ 76 $html .= "
  • $num :".$k."
  • "; 77 $num++; 78 } 79 $html .= '
'; 80 echo $html; 81 echo "
数据表的个数为:".count($arr)."
"; 82 }

 

转载于:https://www.cnblogs.com/Super-Man/p/4380560.html

你可能感兴趣的:(使用函数查询项目里使用的所有数据表的名字)