code.fastix.org

Dateiansicht:

Datei:Projekte -> Linux,PHP:System-Tools -> Server-Zustand 2 (Banana-Pi mit Debian) -> sysview.core.php
md5:bd76c539077d66ab44c949e263764269
sha1:ea4e2b442a7e3f8426ebfc52a4a1d4af4c5a7c6d
Download-Link:Download
  1. <?php
  2. $config['PluginDir']            = __DIR__ . '/sysview_lib';
  3. $config['jsonOptions']          = JSON_PRETTY_PRINT+JSON_UNESCAPED_UNICODE;
  4.  
  5. $config['BuildInFunctions']     = ['FUNCTIONS_LIST','FEHLER_TEST','LINUXKERNEL', 'HOSTNAME','OSNAME'];
  6. $config['DataTypes']            = ['ARRAY', 'STRING', 'TEXT/PLAIN', 'TEXT/HTML', 'TEXT/JAVASCRIPT', 'TEXT/CSS'];
  7.  
  8. $config['ErrorReporting']       = true;
  9.  
  10. $e = 0; #1
  11. $errors[0]['errorString']   = 'Testfehler';
  12. $errors[0]['errorType']     = 'Notice';
  13.  
  14. $e = 1; #2
  15. $errors[pow(2,$e)]['errorString']   = 'Nicht vorgesehener Reqest';
  16. $errors[pow(2,$e)]['errorType']     = 'FATAL';
  17.  
  18.  
  19. $e = 2; #4
  20. $errors[pow(2,$e)]['errorString']   = 'Nicht lesbares Plugin (zwecks Demonstration provoziert!)';
  21. $errors[pow(2,$e)]['errorType']     = 'NOTICE';
  22.  
  23. $e = 3; #8
  24. $errors[pow(2,$e)]['errorString']   = 'Diese Schnittstelle ist veraltet und wird demnächst nicht mehr funktionieren.';
  25. $errors[pow(2,$e)]['errorType']     = 'DEPRECATED';
  26.  
  27. $e = 15; #32768
  28. $errors[pow(2,$e)]['errorString']   = 'Funktionsinterner Fehler';
  29. $errors[pow(2,$e)]['errorType']     = 'NOTICE';
  30.  
  31.  
  32. $e = 16; #65536
  33. $errors[pow(2,$e)]['errorString']   = 'Nicht konfigurierter Fehler';
  34. $errors[pow(2,$e)]['errorType']     = 'NOTICE';
  35.  
  36. $allOutput=array();
  37.  
  38. $config['allFunctions'] = getAllFunctions();
  39. $arRequests=getRequests();
  40.  
  41.  
  42. foreach ($arRequests as $Request) {
  43.     try {
  44.         if ( in_array($Request, $config['allFunctions']) ) {
  45.             call_user_func($Request);
  46.         }
  47.     } catch (Exception $e) {
  48.         error_log($e);
  49.     }
  50. }
  51.  
  52.  
  53.  
  54. /** Benutzte Funktionen **/
  55. function getAllFunctions() {
  56.  
  57.     global $config;
  58.  
  59.     $ret = $config['BuildInFunctions'];
  60.     if ( is_dir($config['PluginDir']) ) {
  61.         if ($d = dir($config['PluginDir']) ) {
  62.             while (false !== ($entry = $d -> read())) {
  63.                 if ( '.' != $entry[0]  && '.php' == substr($entry, -4)) {
  64.  
  65.                     $f = $config['PluginDir'] . '/' . $entry;
  66.                     if ( is_readable($f) ) {
  67.                         $ret[] = substr($entry,0, -4);
  68.                         require_once($f);
  69.                     } else {
  70.                         error_log("$f ist nicht lesbar");
  71.                     }
  72.                 }
  73.             }
  74.             $d->close();
  75.         }
  76.     }
  77.     sort($ret);
  78.     return $ret;
  79. }
  80.  
  81. function getRequests () {
  82.     global $config;
  83.     $arRequests=array();
  84.     if ( empty($_REQUEST['q']) ) {
  85.         $arRequests =  $config['allFunctions'];
  86.     } else {
  87.         $arr=explode(',', $_REQUEST['q']);
  88.         foreach ($arr as $item) {
  89.             $item=trim($item);
  90.             if ( in_array($item, $config['allFunctions']) ) {
  91.                 $arRequests[]=$item;
  92.             } else {
  93.                 registerError($item, 2);
  94.             }
  95.         }
  96.     }
  97.     return $arRequests;
  98. }
  99.  
  100.  
  101. function registerOutput ($caller, $dataType, $data) {
  102.     global $config, $errors, $allErrors, $allOutput;
  103.     $o['dataType']    = $dataType;
  104.     $o['data']    = $data;
  105.     $allOutput[$caller]=$o;
  106. }
  107.  
  108.  
  109. function registerError ($caller, $errorNumber, $dataType=false, $data=false) {
  110.  
  111.     global $config, $errors, $allOutput;
  112.  
  113.     if ( $config['ErrorReporting'] ) {
  114.  
  115.     if ( ! false === strpos($caller, '/') ) {
  116.         $callerAusgabe = '[DOCUMENT_ROOT]' . str_replace(realpath($_SERVER['DOCUMENT_ROOT']), '', $caller);
  117.     } else {
  118.         $callerAusgabe = $caller;
  119.     }
  120.  
  121.     if ( isset($errors[$errorNumber]['dataType']) ) {
  122.         $o['dataType']    = $errors[$errorNumber]['dataType'];
  123.     } else {
  124.         $o['dataType']    = $dataType;
  125.     }
  126.  
  127.     if ( isset($errors[$errorNumber]['data']) ) {
  128.         $o['data']    = $errors[$errorNumber]['data'];
  129.     } else {
  130.         $o['data']    = $data;
  131.     }
  132.  
  133.     $o['errorNumber']     = $errorNumber;
  134.     if (! isset($errors[$errorNumber]['errorString'])) {
  135.         $o['errorString']     = $errors[65536]['errorString'] . " (errorNumber=$errorNumber)";
  136.         $o['errorType']       = $errors[65536]['errorType'];
  137.     } else {
  138.         $o['errorString']     = $errors[$errorNumber]['errorString'];
  139.         $o['errorType']       = $errors[$errorNumber]['errorType'];
  140.     }
  141.     error_log( $o['errorType'] . ': (' . $o['errorNumber'] . ') : ' . $o['errorString'] . ': '. $callerAusgabe );
  142.     $allOutput[$caller]=$o;
  143.  
  144.     }
  145. }
  146.  
  147.  
  148. /** Build-In-Funktionen **/
  149.  
  150. function FUNCTIONS_LIST() {
  151.     global $config;
  152.     registerOutput(__FUNCTION__, 'ARRAY', $config['allFunctions']);
  153. }
  154.  
  155. function FEHLER_TEST() {
  156.     registerError(__FUNCTION__, 8, $dataType='STRING', $data='Funktionstest, dient zum Testen der Rückgabe und Auswertung von Fehlern. Sie sehen dieses, da das Error-reporting aktiviert ist.');
  157. }
  158.  
  159. function LINUXKERNEL() {
  160.     registerOutput( __FUNCTION__, 'STRING', trim(`uname -r`) );
  161. }
  162.  
  163.  
  164. function HOSTNAME() {
  165.     registerOutput( __FUNCTION__, 'STRING', trim(`uname -n`) );
  166. }
  167.  
  168. function OSNAME() {
  169.     registerOutput( __FUNCTION__, 'STRING', trim(`uname -o`) );
  170. }
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177. #*/