23.6 Dateien zeilenweise verarbeiten

Problem

Sie wollen schnell eine Liste aller Hostnamen aus einem Apache-Access-Log ermitteln, die auf Ihre Seite zugegriffen haben.

Lösung

Verwenden Sie die neuen Schalter des PHP 5-CLI-Binary, um das Access-Log zeilenweise auszulesen, ohne dazu erst ein Skript schreiben zu müssen:

% cat access.log | head −200 | php5 -B '$hosts = array();' -R 'list($ip) = explode(" ",
$argn, 2); $host = gethostbyaddr($ip); if (!in_array($host, $hosts)) array_push($hosts,
$host);' -E 'echo implode("\n", $hosts);'

Diskussion

PHP 5 bietet drei neue Optionen, wenn man es auf der Kommandozeile ausführt, die es einem ermöglichen, die Ausgabe eines Skripts oder auch eine Datei zeilenweise zu analysieren. Dazu werden drei Codeschnipsel angegeben: ...

Get PHP 5 Kochbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.