phpbar.de logo

Mailinglisten-Archive

[php] Logfile reverse auslesen

[php] Logfile reverse auslesen

Christoph Jeschke christoph.jeschke at gmail.com
Don Jul 6 13:46:41 CEST 2006


* Peter Webel:

Hallo,

freut mich, dass Du den Hinweis auf den fehlenden Realnamen beherzigt hast.

> $ct_zeilen = 50;
> $cmd = 'tail -n '.$ct_zeilen.' '.$error_log;
> $ii = 0;
> exec($cmd, $ar_tmp_log, $ii);
> $ar_log = array_reverse($ar_tmp_log); 

Da Du ja sowieso schon einen Befehl ausführst, pipe den Output von tail
doch noch durch tac. Dann sparst Du dir das array_reverse. BTw: Auch
wenn $error_log aus einer sicheren Quelle stammt, ist ein Escaping nicht
verkehrt.

Ich würde das ungefähr so machen (ungetestet):

$ct_zeilen 	= 50;
$exitcode 	= null;
unset($ar_log);

$cmd = 	sprintf(
		'tail -n %d %s | tac',
		escapeshellcmd($ct_zeilen),
		escapeshellcmd($error_log)
	);

exec($cmd, $ar_log, $exitcode);

if(false === is_null($exitcode) || 0 !== $exitcode)
{
	$now	= date('r');
	// operation was not successfull, trigger E_User_ERROR
	trigger_error("[$now] $cmd was not successfull: $exitcode", E_USER_ERROR);
}

php::bar PHP Wiki   -   Listenarchive