Tom: Array formatiert in Logdatei schreiben?

Beitrag lesen

Hello,

ich habe eine .log-Datei (einfache .txt) erstellt welche ich aus php heraus mit Inhalten fülle. Darunter auch verschiedene Arrays. Die Arrays und auch das log werden zusätzlich auf dem Bildschirm ausgegeben. Bei der Ausgabe von Arrays kann ich für den Bildschirm ja mit <pre> und print_r() ein Array gut lesbar ausgeben. Das selbe würde ich gern mit der Datei machen. Allerdings hat bisher alles was ich versucht habe nicht geklappt. Und ich will auch nicht eine extra Routine schreiben um die Arrays lesbar abzuspeichern da es verschiedene sind und es den Aufwand nicht lohnen würde.

Daten sollte man in Dateien möglichst immer im Rohformat ablegen, soweit keine wichtigen Gründe dagegen sprechen. Da Du aber eine Datei mit unterschiedlichen Satzarten erzeugen willst, könntest Du entweder die Satzarten kennzeichnen und später bei der Wiederverwendung der Daten entweder die passende Formatanweisung (Typenmaske, Record, Structure, ...) für die Daten oder zusätzlich die Anzeigemaske (HTML-Template) dazu mischen.

Wenn Du die Daten nicht mehr maschinell auswerten willst, sondern nur noch per Sichtkontrolle, dann könntest Du auch gleich eine HTML-Datei damit erzeugen.

Die Funktion print_r() könnte Dir dabei aber u. U. trotzdem behilflich sein. Du solltest damit einen String erzeugen lassen (zweites Funktionsargument beachten!), der dann wahlweise in HTML (<pre>) verpackt werden kann, oder aber direkt in der Datei abgelegt werden kann.

$mein_string = htmlspechialchars(print_r($_mein_array,1));

echo "<pre>\r\n";
echo $mein_string . "\r\n";
echo "</pre>\r\n";

file_put_contents($mein_dateiname, $mein_string . "\r\n", FILE_APPEND);

Es bleibt zu beachten, dass ein Array auch Werte enthalten kann, die ihrerseits einen Zeienumbruch enthalten können. Das Satzende wäre dann nicht mehr klar erkennbar.

Überlege Dir also genau, ob Du mit den Daten nachher - außer einer Sichtkontrolle - noch etwas anfangen willst. Dann wäre diese Art des Wegschreibens nämlich wenig sinnvoll.

Liebe Grüße aus Bad Driburg

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://restaurant-zur-kleinen-kapelle.de