code.fastix.org

Dateiansicht:

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