![]() |
[PHP] Array in Datei abspeichern?
Hi!
ich kann in PHP ja mit file() den Inhalt einer Datei Zeilenweise in ein Array gepackt bekommen... Wie ist es nun möglich Daten wieder Zeilenweise in einer Datei abzuspeichern? Also wie kann man ein Array zeilenweise in einer Textdatei abspeichern? MfG cruso |
Re: [PHP] Array in Datei abspeichern?
Delphi-Quellcode:
Schreibt das Array $arr in die Datei mit Pfad $filename.
$fp=fopen($filename, "w+");
fwrite($fp, implode("\n", $arr)); fclose($fp); |
Re: [PHP] Array in Datei abspeichern?
Zitat:
|
Re: [PHP] Array in Datei abspeichern?
ok.... also ich habe das nun einmal so umgesetzt:
Code:
Das Problem: Es ist wir keine neue Zeile erstellt. Alles wird in der ersten Zeile der Datei abgespeichert.
//...
Was läuft falsch? |
Re: [PHP] Array in Datei abspeichern?
Bemüh doch einfach mal php.net:
![]() Zitat:
|
Re: [PHP] Array in Datei abspeichern?
Für Windows musst Du die Zeile
Code:
geringfügig umändern:
fwrite($tf, implode("\n", $log));
Code:
fwrite($tf, implode("\r\n", $log));
|
Re: [PHP] Array in Datei abspeichern?
Ich glaub das liegt eher daran:
Code:
und
$fp=fopen($filename, "w+");
Zitat:
|
Re: [PHP] Array in Datei abspeichern?
Zitat:
|
Re: [PHP] Array in Datei abspeichern?
Du solltest lieber serialize verwenden.
![]() Zitat:
|
Re: [PHP] Array in Datei abspeichern?
Wie wäre es denn gleich mit der entsprechenden Funktion "
![]() ... man kann ja damit nicht nur Fehler protokollieren .... :-) |
Re: [PHP] Array in Datei abspeichern?
Zu serialize(): wenn er die Datei mit file() einlesen will, ist serialize schlecht.
Zum implode(): Erstens laesst file() die Zeilenumbrueche am Ende intakt, und loescht sie nicht weg. Ein implode('', $foo) sollte also reichen. Lies die Datei doch einfach nochmal mit file() aus und ueberpruef, ob wirklich nur ein Element im Array drin ist. Was ein Editor anstellt, der keine gscheiden Zeilenumbrueche erkennt, kann dir eigentlich egal sein. Greetz alcaeus |
Re: [PHP] Array in Datei abspeichern?
hallo,
einfach wäre es, so eine datei zu erstellen:
Code:
die kann dann so geladen werden:
<?php
return array('a','b','c'); ?>
Code:
$arr = include('file.php');
|
Re: [PHP] Array in Datei abspeichern?
also irgendwie gibt es jetzt viele viele Lösungen... nur welche funktioniert? Und was ist jetzt an meinem Code falsch bzw. was ist jetzt der tatsächliche Grund, dass es nicht klappt?
|
Re: [PHP] Array in Datei abspeichern?
Unter welchem Betriebssystem läuft denn PHP? Windows? Unix? Mac OS?
|
Re: [PHP] Array in Datei abspeichern?
Code:
//...
PHP läuft unter Windows (doch es sollte doch auf jeden fall möglich sein eine datei plattformunabhängig zu verändern)... außerdem klappt es ja im ersten fall... |
Re: [PHP] Array in Datei abspeichern?
Sorry, aber liest hier einer überhaupt richtig? :mrgreen:
--> ![]() Wenn er die Datei mit w+ öffnet, ist es doch klar, dass da nur ein Eintrag drin steht, nämlich der, den er gerade geschrieben hat, da w+ die Größe der Datei auf 0 Bytes setzt. ;) |
Re: [PHP] Array in Datei abspeichern?
Zitat:
|
Re: [PHP] Array in Datei abspeichern?
Zitat:
|
Re: [PHP] Array in Datei abspeichern?
Und wie würde es jetzt klappen?
|
Re: [PHP] Array in Datei abspeichern?
Was soll denn diese Zeile bewirken?
Code:
fwrite($tf, $log_add);
|
Re: [PHP] Array in Datei abspeichern?
Zitat:
Funktionierts denn mit \r\n? Zur Not mach halt ne Schleife, und schaue obs damit geht:
Code:
$f = fopen (..., "w+");
for ($a = 0; $a < count ($log); $a++) fputs ($f, $log[$a]); fclose ($f); |
Re: [PHP] Array in Datei abspeichern?
ok... es funktioniert mit \r\n ... doch das wird nicht unter linux funktionieren oder? es sollte nämlich unter beiden systemem laufen...
sollte ich dann vorher testen welches system vorliegt und danach passend reagieren? |
Re: [PHP] Array in Datei abspeichern?
Bisher hatte ich noch keine Probleme mit \r\n, Linux ist ja kulant ;)
|
Re: [PHP] Array in Datei abspeichern?
ah ok... dann kann ich das weiter verwenden. ich dachte schon ich muss hunderte male immer wieder checken welches OS vorliegt
|
Re: [PHP] Array in Datei abspeichern?
Was ist damit? ->
![]() |
Re: [PHP] Array in Datei abspeichern?
Und ihr seid sicher, dass /r/n auch unter Linux funzt?
Und wofür steht eigentlich dieses /r ? |
Re: [PHP] Array in Datei abspeichern?
\r steht für Carriage Return (Wagenrücklauf)
|
Re: [PHP] Array in Datei abspeichern?
\r = carriage return = #13, \n = linefeed = #10
php sollte eine kostante oder sowas haben, die dir den aktuellen linebreak zurückliefert, und JA, du solltest darauf achten. |
Re: [PHP] Array in Datei abspeichern?
Sicher ist es interessant das aktuelle Problem zu lösen, aber beim "eigentlichen" würde Dir die Funktion error_log sicher einiges an Arbeit abnehmen :-) Damit kannst Du einfach Zeilen an eine Datei anhängen ...
Delphi-Quellcode:
$arr = array('xyz', 'abc', 'efg');
foreach($arr as $val) error_log($val, 3, './log.txt'); |
Re: [PHP] Array in Datei abspeichern?
ich mache es jetzt hier ohne array mit a+ beim fopen... und füge für die neue zeile \r\n hinzu...
|
Re: [PHP] Array in Datei abspeichern?
Zitat:
![]() Zitat:
Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz