code.fastix.org

Dateiansicht:

Datei:Projekte -> PHP:Replacement für phpinfo() -> phpinfo.php
md5:3936904c75162f9615ceec596f632b02
sha1:5dd443f469e68f361d179961838ed2145382b6a9
  1. <?php
  2. header('Cache-Control: no-cache, no store');
  3. if ( isset ( $_COOKIE[ini_get('session.name')] ) ) {
  4.         session_start();
  5. }
  6. ?><!DOCTYPE HTML>
  7. <html lang="de">
  8. <head>
  9. <meta charset="utf-8"> 
  10. <link rel="Shortcut Icon" href="/favicon.ico" />
  11. <meta name="robots" content="noindex,noarchive,nosnippet,noodp,notranslate,noimageindex">
  12. <title><?=$_SERVER['SERVER_NAME']; ?>: PHP-Informationen</title>
  13. <style>
  14. body, html {
  15.         margin:0;
  16.         padding:0;
  17. }
  18.  
  19. body {
  20.         margin-right: 2rem;
  21.         margin-left: 2rem;
  22.         margin-bottom:4rem;
  23. }
  24.  
  25.  
  26. h1 {
  27.         color:#000;
  28.         background-color: #ffb300;;
  29.         font-size: 2rem;
  30.         padding: .7em 2rem .5rem 2rem;
  31.         margin-top: 0;
  32.         margin-right: -2rem;
  33.         margin-left: -2rem;
  34. }
  35.  
  36. .subline {
  37.         font-size: .4em;
  38.         font-family: sans-serif;
  39. }
  40.  
  41. h1 a:link, h1 a:visited, h1 a:hover, h1 a:focus, h1 a:active {
  42.         color:#000;
  43.         font-family: sans-serif;
  44. }
  45.  
  46. h4 {
  47.         color:#000;
  48.         background-color:#fff0cc;
  49.         padding:.5em;
  50.         padding-left:3rem;
  51.         margin-right:-2em;
  52.         margin-left:-2em;
  53. }
  54.  
  55. th {
  56.         text-align:left;
  57.         padding:.3em 1em .3em 1em;
  58.         color:#000;
  59.         background-color:#fff0cc;      
  60. }
  61.  
  62. td, p, nav {
  63.         vertical-align:top;
  64.         padding:.3em 1em .3em 1em;
  65.         color:#000;
  66.         background-color:#eee; 
  67. }
  68.  
  69. nav {
  70.         font-weight: 900:
  71. }
  72.  
  73. table {
  74.         /*max-width:100%;*/
  75. }
  76.  
  77. td table {
  78.         border:0;
  79. }
  80.  
  81. td table td {
  82.         border:0;
  83. }
  84.  
  85. table.showhover tr:hover td {
  86.         background-color:#ffe; 
  87. }
  88.  
  89. p, td, th {
  90.         font-size:0.9em;
  91.         font-family: sans-serif;
  92. }
  93.  
  94. td:first-child,
  95. th:first-child {
  96.                 max-width:15%;
  97. }
  98.  
  99. a.toplink:link,
  100. a.toplink:visited,
  101. a.toplink:hover,
  102. a.toplink:focus,
  103. a.toplink:active
  104. {
  105.         display:inline-block;
  106.         position: relative;
  107.         left: -1rem;
  108.     border-radius: 4px;
  109.     text-decoration: none;
  110.     font-weight:bold;
  111.     font-size:160%;
  112. }
  113.  
  114. </style>
  115. </head>
  116. <body>
  117. <h1><?=$_SERVER['SERVER_NAME']; ?>: PHP-Informationen<br><span class='subline'><a href="https://code.fastix.org/Projekte/PHP:Replacement%20f%c3%bcr%20phpinfo()/">Tool von Jörg Reinholz</a>, <a href='https://www.fastix.org/'>fastix WebDesign &amp; Consult, Kassel</a>.</span></h1>
  118. <?php if ( isset( $_GET['show_ini_only'] ) && 'true' == $_GET['show_ini_only'] ) { ?>
  119. <h4 id="INI"><a class="toplink" href="?">⮉</a>Ini-Einstellungen</h4>
  120. <table class="showhover">
  121.         <tbody>
  122. <?php
  123.         iniShow();
  124. ?>
  125.  
  126.         </tbody>
  127. </table><?php
  128.         echo '<h4><a class="toplink" href="#">⮉ </a>(nach oben)</h4>';
  129.         echo "</body>\n</html>\n";
  130.         exit;
  131. } elseif ( isset( $_GET['show_constants_only'] ) && 'true' == $_GET['show_constants_only'] ) {
  132.         echo '<h4><a class="toplink" href="?">⮉</a>Konstanten:</h4>'."\n";
  133.         PrintHash( get_defined_constants( true ) );    
  134.         echo '<h4><a class="toplink" href="#">⮉ </a>(nach oben)</h4>';
  135.         echo "</body>\n</html>\n";
  136.         exit;
  137. } elseif ( isset( $_GET['show_linuxlocales_only'] ) && 'true' == $_GET['show_linuxlocales_only'] ) {
  138.         echo '<h4><a class="toplink" href="?">⮉</a>Alle installierten Linux-Locales:</h4>'."\n";
  139.         if ( is_file( '/usr/bin/locale' ) ) {
  140.                 PrintHash ( ( new linuxLocales) -> getLocales(), true );
  141.         } else {
  142.                 echo "<p>Fehler: Dies scheint kein Linux zu sein.</p>";
  143.         }
  144.         echo '<h4><a class="toplink" href="#">⮉ </a>(nach oben)</h4>';       
  145.         echo "</body>\n</html>\n";
  146.         exit;  
  147. }
  148. ?>
  149. <nav><a href="#_SERVER">$_SERVER</a>
  150.  | <a href="#_ENV">$_ENV</a>
  151.  | <a href="#_GET">$_GET</a>
  152.  | <a href="#_POST">$_POST</a>
  153.  | <a href="#_COOKIE">$_COOKIE</a>
  154.  | <a href="#_SESSION">$_SESSION</a>
  155.  | <a href="#_FILES">$_FILES</a>
  156.  | <a href="#GLOBALS">$GLOBALS</a>
  157.  </nav><nav><a href="<?=$_SERVER['PHP_SELF'];?>?show_ini_only=true">(Nur) Ini-Settings</a>
  158.  | <a href="<?=$_SERVER['PHP_SELF'];?>?show_constants_only=true">(Nur) Konstanten</a>
  159.  <?php if ( is_file( '/usr/bin/locale' ) ) { ?>
  160.  | <a href="?show_linuxlocales_only=true">(Nur) Linux-locales</a>
  161.  <?php } ?>
  162.  </nav>
  163. <h4><a class="toplink" href="#">⮉</a>PHP-Version und SAPI:</h4>
  164. <?php
  165. $pattern='/[0-9]+\.[0-9]+/';
  166. preg_match ( $pattern , phpversion(), $matches );
  167. ?>
  168. <p>PHP <?=$matches[0]; ?> läuft als <?=php_sapi_name(); ?></p>
  169. <?php unset( $pattern, $matches ); ?>
  170.  
  171. <?php showVars (); ?>
  172.  
  173. <h4><a class="toplink" href="#">⮉ </a>(nach oben)</h4>
  174. </body>
  175. </html><?php
  176.  
  177.  
  178. function return_bytes( $val ) {
  179.    $val = trim( $val );
  180.    $last = strtolower( $val{strlen( $val )-1} );
  181.    switch( $last ) {
  182.        // The 'G' modifier is available since PHP 5.1.0
  183.        case 'g':
  184.            $val *= 1024*1024*1024;
  185.        case 'm':
  186.            $val *= 1024*1024;
  187.        case 'k':
  188.            $val *= 1024;
  189.    }
  190.    return $val;
  191. }
  192.  
  193. function Printline ( $key, $val ) {
  194.         echo "\n" . "   <tr>\n          <td>" . htmlentities($key) . "</td>\n           <td>";
  195.         if ( is_array( $val ) ) {
  196.                 PrintHash ( $val, true );
  197.         } else {
  198.                 echo htmlentities( $val );
  199.         }
  200.         echo "</td>\n   </tr>";
  201. }
  202.  
  203. function PrintHash ( $ar, $showhover=false ) {
  204.         if ( isset($ar) && is_array( $ar ) && count( $ar ) ) {
  205.                 if ( $showhover ) {
  206.                         $class=" class='showhover'";
  207.                 } else {
  208.                         $class="";
  209.                 }
  210.                 echo '<table' . $class .  ">\n<thead>\n<tr><th>Schl&uuml;ssel</th><th>Wert</th></tr>\n</thead>\n<tbody>";
  211.                 while ( list( $key, $val ) = each( $ar ) ) {
  212.                         if ( 'GLOBALS' != $key ) {
  213.                                 Printline ( $key, $val );
  214.                         }
  215.                 }
  216.                 echo "\n</tbody>\n</table>\n";
  217.         } else {
  218.                         echo "(leer)";
  219.         }
  220. }
  221.  
  222. class linuxLocales {
  223.         private $all;
  224.         function __construct () {
  225.                 if (! is_file( '/usr/bin/locale' ) ) {
  226.                                 return false;
  227.                 }
  228.                 $rows = explode( "\n", `/usr/bin/locale -a` );
  229.                 foreach ( $rows as $row ) {
  230.                         if ( $row = trim( $row ) ) {
  231.                                 $this -> all[] = $row;
  232.                         }
  233.                 }
  234.         }
  235.         function getLocales( $grep='' ) {
  236.                 if ( $grep ) {
  237.                         $pattern = '/^' .  $grep . '.*$/';
  238.                         $ar =  preg_grep( $pattern,  $this -> all );
  239.                         return $ar;
  240.                 } else {
  241.                         return $this -> all;
  242.                 }
  243.         }
  244. }
  245.  
  246. function iniShow () {
  247.         $arIni = ini_get_all();
  248.         foreach ( array_keys ( $arIni ) as $key ) {
  249.                 if ('' !==  $arIni[$key]['global_value']  && '' !== $arIni[$key]['local_value'] ) {
  250.                         echo '
  251.                         <tr>
  252.                                 <td><strong>'               . htmlentities( $key )                         . '</strong></td>';
  253.                                                        
  254.                         if ( $arIni[$key]['global_value'] == $arIni[$key]['local_value'] )  {
  255.                                 echo '
  256.                                 <td>' . htmlentities( str_replace(',',', ', $arIni[$key]['global_value'] ) ) . '</td>';
  257.                         } else {
  258.                                         echo '
  259.                                 <td><strong>local_value:</strong> '  . htmlentities( str_replace(',', ', ', $arIni[$key]['local_value']  ) ) . '</strong><br>
  260.                                 global_value: ' . htmlentities( str_replace(',', ', ', $arIni[$key]['local_value']  ) ) . '</td>';
  261.                         }
  262.                 }
  263.         }
  264. }
  265.  
  266. function showVars () {
  267.         foreach (['_GET', '_POST', '_COOKIE', '_SESSION', '_REQUEST', '_FILES', '_SERVER', '_ENV', 'GLOBALS' ] as $varname ) {
  268.                 echo '<h4 id="' . $varname . '"><a class="toplink" href="#">⮉</a>Globale Variable &quot;$' . $varname . '&quot;:</h4>'."\n";
  269.                 @eval( 'PrintHash( $' . $varname . ', ( $varname !== "GLOBALS" ) );');
  270.         }
  271. }