functions.php
上传用户:gzy2002
上传日期:2010-02-11
资源大小:1785k
文件大小:5k
- <?php
- // +-------------------------------------------------------------+
- // | DeskPRO v [2.0.1 Production]
- // | Copyright (C) 2001 - 2004 Headstart Solutions Limited
- // | Supplied by WTN-WDYL
- // | Nullified by WTN-WDYL
- // | Distribution via WebForum, ForumRU and associated file dumps
- // +-------------------------------------------------------------+
- // | DESKPRO IS NOT FREE SOFTWARE
- // +-------------------------------------------------------------+
- // | License ID : Full Enterprise License =) ...
- // | License Owner : WTN-WDYL Team
- // +-------------------------------------------------------------+
- // | $RCSfile: functions.php,v $
- // | $Date: 2004/02/10 01:34:25 $
- // | $Revision: 1.4 $
- // +-------------------------------------------------------------+
- // | File Details:
- // | - Functions scanner
- // +-------------------------------------------------------------+
- error_reporting(E_ALL & ~E_NOTICE);
- include("./global.php");
- developer_check();
- admin_header('Server Information', 'Functions Scan');
- if (!ini_set('max_execution_time', '120')) {
- echo "Warning! Couldn't set execution time, so this may time out.<BR>";
- }
- $messages = exec('grep -onri "function.*(.*)" ../*', $message, $return);
- if (!count($message)) {
- print "Unable to perform search.n";
- exit();
- } else {
- foreach ($message AS $val) {
- $val = split(':',$val);
- if (preg_match("/functions{0,}(S+?)((.*))/", $val[2], $matches)) {
- if (stristr($val[0], '.sql')) { continue; }
- if (stristr($val[0], 'includes/graph')) { continue; }
- if (stristr($val[0], 'includes/fpdf')) { continue; }
- if (stristr($val[0], 'admin/functions.php')) { continue; } // Don't match ourselves; we don't define anything here
- $functions[$matches[1]]['file'][$val[0]] = $val[1];
- $functions[$matches[1]]['args'] = $matches[2];
- if (strstr($matches[2], '$')) {
- $type = 'PHP';
- } else {
- $type = 'JavaScript';
- }
- $functions[$matches[1]]['type'] = $type;
- }
- }
- }
- $keys = array_keys($functions);
- sort($keys);
- foreach ($keys AS $key) {
- $message = array();
- $orig_key = $key;
- ereg_replace('&', '&', $key);
- $messages = exec("grep -nri "$key" ../*", $message, $return);
- $key = $orig_key;
- if (is_array($message)) {
- foreach ($message AS $val) {
- $orig = $val;
- $val = split(':', $val);
- if (!preg_match("/functions{0,}S+?(.*)/", $val[2], $matches)) {
- $functions[$key]['files'][$val[0]][] = $val[1];
- }
- }
- }
- if (!count($functions[$key]['files'])) {
- $unused[$key] = $functions[$key];
- unset($functions[$key]);
- }
- }
- $keys = array_keys($functions);
- sort($keys);
- print "<TABLE CELLPADDING="2" CELLSPACING="0">";
- $rowscount = 0;
- foreach ($keys AS $key) {
- if ($rowscount % 2) {
- $bgcolor="#EEEEFF";
- } else {
- $bgcolor="white";
- }
-
- if ($functions[$key]['type'] == "PHP") {
- $type = "PHP";
- } else {
- $type = "JavaScript";
- }
- echo "<TR VALIGN="top" BGCOLOR="$bgcolor"><TD><B>$key</B> ($type)<BR>";
- if ($functions[$key]['args']) {
- echo "Args: <U>{$functions[$key][args]}</U>n";
- } else {
- echo "Args: <I>none</I>n";
- }
- echo "<BR><U>Defined in files:</U><TABLE><TR><TD>";
- foreach ($functions[$key]['file'] AS $filename => $line) {
- ereg_replace('../', '', $filename);
- echo "$filename, line $line<BR>n";
- }
- echo "</TD></TR></TABLE></TD><TD>n";
- echo "<TABLE><TR><TD COLSPAN="2"><U>Used in files:</U></TD></TR>";
- $rowscount2 = 0;
-
- foreach ($functions[$key]['files'] AS $filename => $lines) {
- if ($rowscount % 2) {
- if ($rowscount2 % 2) {
- $bgcolor="#CCCCDD";
- } else {
- $bgcolor="#DDDDEE";
- }
- } else {
- if ($rowscount2 % 2) {
- $bgcolor="#EEEEEE";
- } else {
- $bgcolor="#F6F6F6";
- }
- }
- $lines = join(', ', $lines);
- echo "<TR BGCOLOR="$bgcolor"><TD><B>$filename</B></TD><TD>$lines<BR></TD></TR>n";
- $rowscount2++;
- }
- echo "</TABLE></TD></TR>n";
- $rowscount++;
- }
- echo "</TABLE>n";
- $keys = array_keys($unused);
- sort($keys);
- print "<TABLE CELLPADDING="2" CELLSPACING="0"><TR><TD><B>Unused functions:</B></TD></TR>";
- $rowscount = 0;
- foreach ($keys AS $key) {
- if ($rowscount % 2) {
- $bgcolor="#EEEEFF";
- } else {
- $bgcolor="white";
- }
-
- if ($unused[$key]['type'] == "PHP") {
- $type = "PHP";
- } else {
- $type = "JavaScript";
- }
- echo "<TR VALIGN="top" BGCOLOR="$bgcolor"><TD><B>$key</B> ($type)<BR>";
- if ($unused[$key]['args']) {
- echo "Args: <U>{$unused[$key][args]}</U>n";
- } else {
- echo "Args: <I>none</I>n";
- }
- echo "<BR><U>Defined in files:</U><TABLE><TR><TD>";
- foreach ($unused[$key]['file'] AS $filename => $line) {
- ereg_replace('../', '', $filename);
- echo "$filename, line $line<BR>n";
- }
- echo "</TD></TR></TABLE></TD></TR>n";
- $rowscount++;
- }
- echo "</TABLE>n";
- ?>