fastix®: DISTINCT-änhliche Funktion

Beitrag lesen

Moin!

Hab grad festgestellt, dass die Dateien anscheinend doch zu groß sind!

Kann eigentlich nicht sein. Ein paar hundert Kilobyte sollten die Limits nicht sprengen, es sei denn Du kopierst die Daten ein paar Mal zwischen verschiedenen Variablen hin- und her.
Andererseits darfst Du bei gepackten Logfiles von 100kB durchaus annehmen, dass diese entpackt 1-2MB groß sind.

-> Lösche unbenötigte Variablen

Versuche ruhig mal die Daten so einzulesen:

  
<?php  
$arZeilen=explode("\n", `gzip -dc logs/access_woche_tag.gz`);  
?>  

Strings in backticks werden an die Shell übergeben und von dieser ausgeführt...

gzip -d -> deflate (entpacken)
gzip -c -> Normalerweise löscht gzip die (entpackte) Urdate und speichert die [ge-|ent-] packte Date [mit|ohne] der angehängten Endung .gz. Die Option -c sorgt dafür, dass die Datei nach stdout (normalerweise der Bildschirm, hier jedoch eine "Ausgabe") entpackt wird.

gzip -dc -> Die nachfolgende Datei wird also entpackt und an die Stelle "gekippt", wo das aufgerufen wird.

Du solltest danach in $arZeilen speichersparend Dein access.log haben.

Weiter:

  
<?php  
echo `gzip -dc logs/access_woche_tag.gz | wc -c`; # Wieder in backticks  
?>  

Liefert Dir die Größe der Datei zurück. Ganz ohne dass der Speicher von PHP in Anspruch genommen wird :)

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development