Hej Daniel,
Den kode du har postet, tager den originale PHPInfo, og ændrer på en række forskellige parametre. Jeg løber dem igennem linje for linje.
Linje 1: Vi starter en buffer, som holder al indhold foruden headers. Dvs. at al information vi vil have udskrevet, gemmes i denne buffer. I dette tilfælde, er det phpinfo.
Linje 2: Vi sætter time-zone til UTC
Linje 3: Vi henter phpinfo. De 3 forskellige konstanters betydning kan du finde her:
http://php.net/manual/en/function.phpinfo.php. Her er ligeledes lidt information om phpinfo-funktionen
Linje 4: Vi tilskriver vores buffer til en variabel. Al info, som ellers var skrevet ud på skærmen, gemmes i $phpinfo variablen.
Linje 5: Vi deaktiverer og sletter vores output-buffer. Den er ikke længere nødvendig, da vi har det tilskrevet i en variabel allerede.
Linje 6: Vi fanger al information i vores $phpinfo variabel, og fanger alt mellem vores <body>-tags. Vi tilskriver denne værdi til variablen $output.
Linje 7: Vi erstatter alle <table*>-tags med <table>-tags med de givne klasser.
Linje 8: Jeg er ikke helt sikker, men den fanger ihvertfald alle bogstaver, a-z, A-Z, 0-9 samt underscore. Ikke helt med på, hvorfor der laves subexpressions.
Linje 9: Vi erstatter <hr>-tagget med ingenting.
Linje 10: Vi erstatter <div class="center"> med ingenting.
Linje 11: Vi erstatter table-rows der har klassen "h" med table heads, table-row og slutningen på table body.
Linje 12: Vi erstatter </table> med slutningen af table body samt slutningen af selve tabellen.
Linje 13: Vi erstatter </div>-tags med ingenting.
Linje 14: Vi tilskriver $output variablen, som har været gennem alle disse ændring til $phpinfo variablen.
Linje 15: Vi udskriver $phpinfo variablen.
Eftersom det du har skrevet ikke er et objekt, tog jeg mig friheden at fjerne objekt-navigatoren ($this). Koden jeg tog udgangspunkt i ligger nedenfor - det er den samme som den du postede, blot ændret til rent faktisk at kunne udskrive noget - udover en fejl.:
- ob_start();
- date_default_timezone_set('UTC');
- phpinfo(INFO_GENERAL | INFO_CONFIGURATION | INFO_MODULES);
- $phpinfo = ob_get_contents();
- ob_end_clean();
- preg_match_all('#<body[^>]*>(.*)</body>#siU', $phpinfo, $output);
- $output = preg_replace('#<table[^>]*>#', '<table class="table table-striped adminlist">', $output[1][0]);
- $output = preg_replace('#(\w),(\w)#', '\1, \2', $output);
- $output = preg_replace('#<hr />#', '', $output);
- $output = str_replace('<div class="center">', '', $output);
- $output = preg_replace('#<tr class="h">(.*)<\/tr>#', '<thead><tr class="h">$1</tr></thead><tbody>', $output);
- $output = str_replace('</table>', '</tbody></table>', $output);
- $output = str_replace('</div>', '', $output);
- $phpinfo = $output;
- echo $phpinfo;
Indlæg senest redigeret d. 23.10.2013 00:56 af Bruger #16122