functions.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:5k
源码类别:

电子政务应用

开发平台:

Java

  1. <?php
  2. // +-------------------------------------------------------------+
  3. // | DeskPRO v [2.0.1 Production]
  4. // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
  5. // | Supplied by WTN-WDYL
  6. // | Nullified by WTN-WDYL
  7. // | Distribution via WebForum, ForumRU and associated file dumps
  8. // +-------------------------------------------------------------+
  9. // | DESKPRO IS NOT FREE SOFTWARE
  10. // +-------------------------------------------------------------+
  11. // | License ID : Full Enterprise License =) ...
  12. // | License Owner : WTN-WDYL Team
  13. // +-------------------------------------------------------------+
  14. // | $RCSfile: functions.php,v $
  15. // | $Date: 2004/02/10 01:34:25 $
  16. // | $Revision: 1.4 $
  17. // +-------------------------------------------------------------+
  18. // | File Details:
  19. // | - Functions scanner
  20. // +-------------------------------------------------------------+
  21. error_reporting(E_ALL & ~E_NOTICE);
  22. include("./global.php");
  23. developer_check();
  24. admin_header('Server Information', 'Functions Scan');
  25. if (!ini_set('max_execution_time', '120')) {
  26. echo "Warning! Couldn't set execution time, so this may time out.<BR>";
  27. }
  28. $messages = exec('grep -onri "function.*(.*)" ../*', $message, $return);
  29. if (!count($message)) {
  30.     print "Unable to perform search.n";
  31. exit();
  32. } else {
  33.     foreach ($message AS $val) {
  34.         $val = split(':',$val);
  35.         if (preg_match("/functions{0,}(S+?)((.*))/", $val[2], $matches)) {
  36.             if (stristr($val[0], '.sql')) { continue; }
  37.             if (stristr($val[0], 'includes/graph')) { continue; }
  38.             if (stristr($val[0], 'includes/fpdf')) { continue; }
  39.             if (stristr($val[0], 'admin/functions.php')) { continue; } // Don't match ourselves; we don't define anything here
  40.             $functions[$matches[1]]['file'][$val[0]] = $val[1];
  41.             $functions[$matches[1]]['args'] = $matches[2];
  42.             if (strstr($matches[2], '$')) {
  43.                 $type = 'PHP';
  44.             } else {
  45.                 $type = 'JavaScript';
  46.             }
  47.             $functions[$matches[1]]['type'] = $type;
  48.         }
  49.     }
  50. }
  51. $keys = array_keys($functions);
  52. sort($keys);
  53. foreach ($keys AS $key) {
  54. $message = array();
  55. $orig_key = $key;
  56. ereg_replace('&', '&', $key);
  57. $messages = exec("grep -nri "$key" ../*", $message, $return);
  58. $key = $orig_key;
  59. if (is_array($message)) {
  60. foreach ($message AS $val) {
  61. $orig = $val;
  62. $val = split(':', $val);
  63. if (!preg_match("/functions{0,}S+?(.*)/", $val[2], $matches)) {
  64. $functions[$key]['files'][$val[0]][] = $val[1];
  65. }
  66. }
  67. }
  68. if (!count($functions[$key]['files'])) {
  69. $unused[$key] = $functions[$key];
  70. unset($functions[$key]);
  71. }
  72. }
  73. $keys = array_keys($functions);
  74. sort($keys);
  75. print "<TABLE CELLPADDING="2" CELLSPACING="0">";
  76. $rowscount = 0;
  77. foreach ($keys AS $key) {
  78. if ($rowscount % 2) {
  79. $bgcolor="#EEEEFF";
  80. } else {
  81. $bgcolor="white";
  82. }
  83. if ($functions[$key]['type'] == "PHP") {
  84. $type = "PHP";
  85. } else {
  86. $type = "JavaScript";
  87. }
  88. echo "<TR VALIGN="top" BGCOLOR="$bgcolor"><TD><B>$key</B> ($type)<BR>";
  89. if ($functions[$key]['args']) {
  90. echo "Args: <U>{$functions[$key][args]}</U>n";
  91. } else {
  92. echo "Args: <I>none</I>n";
  93. }
  94. echo "<BR><U>Defined in files:</U><TABLE><TR><TD>";
  95. foreach ($functions[$key]['file'] AS $filename => $line) {
  96. ereg_replace('../', '', $filename);
  97. echo "$filename, line $line<BR>n";
  98. }
  99. echo "</TD></TR></TABLE></TD><TD>n";
  100. echo "<TABLE><TR><TD COLSPAN="2"><U>Used in files:</U></TD></TR>";
  101. $rowscount2 = 0;
  102. foreach ($functions[$key]['files'] AS $filename => $lines) {
  103. if ($rowscount % 2) {
  104. if ($rowscount2 % 2) {
  105. $bgcolor="#CCCCDD";
  106. } else {
  107. $bgcolor="#DDDDEE";
  108. }
  109. } else {
  110. if ($rowscount2 % 2) {
  111. $bgcolor="#EEEEEE";
  112. } else {
  113. $bgcolor="#F6F6F6";
  114. }
  115. }
  116. $lines = join(', ', $lines);
  117. echo "<TR BGCOLOR="$bgcolor"><TD><B>$filename</B></TD><TD>$lines<BR></TD></TR>n";
  118. $rowscount2++;
  119. }
  120. echo "</TABLE></TD></TR>n";
  121. $rowscount++;
  122. }
  123. echo "</TABLE>n";
  124. $keys = array_keys($unused);
  125. sort($keys);
  126. print "<TABLE CELLPADDING="2" CELLSPACING="0"><TR><TD><B>Unused functions:</B></TD></TR>";
  127. $rowscount = 0;
  128. foreach ($keys AS $key) {
  129. if ($rowscount % 2) {
  130. $bgcolor="#EEEEFF";
  131. } else {
  132. $bgcolor="white";
  133. }
  134. if ($unused[$key]['type'] == "PHP") {
  135. $type = "PHP";
  136. } else {
  137. $type = "JavaScript";
  138. }
  139. echo "<TR VALIGN="top" BGCOLOR="$bgcolor"><TD><B>$key</B> ($type)<BR>";
  140. if ($unused[$key]['args']) {
  141. echo "Args: <U>{$unused[$key][args]}</U>n";
  142. } else {
  143. echo "Args: <I>none</I>n";
  144. }
  145. echo "<BR><U>Defined in files:</U><TABLE><TR><TD>";
  146. foreach ($unused[$key]['file'] AS $filename => $line) {
  147. ereg_replace('../', '', $filename);
  148. echo "$filename, line $line<BR>n";
  149. }
  150. echo "</TD></TR></TABLE></TD></TR>n";
  151. $rowscount++;
  152. }
  153. echo "</TABLE>n";
  154. ?>