Tach!
Ich habe mir eine kleine Funktion geschrieben, die die Script-Aufrufe mitlogged, allerdings ohne tempnam. tempnam ändert sich bei jedem Aufruf, daher weiss ich nicht, wie ich immer wieder was in die Datei anhängen soll, ändert sich ja jedesmal.
Du musst dir den erzeugten Namen irgendwo zentral merken. Das kann eine Konstante sein, die ist immer global und muss nicht durchgereicht oder mit global "geholt" werden.
$_mtst = utf8_encode( strftime("%d.%m.%Y", $_timestamp) ) . '_' . $_timestamp;
Die UTF-8-Kodierung ist nicht notwendig. Oder erwartest du Zeichen jenseits von ASCII im Datum?
if (file_exists($tmpfname)) {
$current = file_get_contents($tmpfname);
$current .= $_ret;
file_put_contents($tmpfname, $current);
} else { // Log-Datei erzeugen, falls nicht vorhanden
$datei = fopen($tmpfname,"w");
fwrite($datei, $_ret);
fclose($datei);
}
Mach es nicht zu umständlich. file_put_contents() kann Dateien erzeugen und es kann auch an vorhandenen Dateien anhängen. Also file_put_contents($datei, $daten, FILE_APPEND); reicht bereits.
// Scriptende, Datei ins Archiv kopieren und löchen
if ($delete) {
copy($tmpfname, './tmp/archive/' . $_mtst . '.log');
unlink($tmpfname);
Wenn alles glatt geht, musst du die Datei nicht aufheben. Und wenn du das doch willst, dann nimm move() und nicht copy+unlink.
script_log ('addtab.inc.php, Zeile 78', $_actual_timestamp); // Nach jedem require, oder einem abgesetzten DB-Query
Es gibt die beiden magischen Konstanten namens __FILE__ und __LINE__.
dedlfix.