Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
PHP: Wie an den Anfang einer Datei schreiben, ohne zu überschreiben?
Diskutiere PHP: Wie an den Anfang einer Datei schreiben, ohne zu überschreiben? im Webentwicklung, Hosting & Programmierung Forum im Bereich Netzwerk & Internet; Moin!
Frei nach dem Motto Newbie sein ist keine Schande... ;)
Mit fopen(datei.txt,a) lässt sich prima eine Datei öffnen, um dann etwas ans Ende...
#1
S
starlitmind
Bekanntes Mitglied
Themenersteller
Dabei seit
10.10.2001
Beiträge
62
Reaktionspunkte
0
Moin!
Frei nach dem Motto Newbie sein ist keine Schande...
Mit
Code:
fopen(datei.txt,a)
lässt sich prima eine Datei öffnen, um dann etwas ans Ende der Datei zu schreiben. Da ich aber immer etwas an den Anfang der Datei schreiben will, ohne dabei den Inhalt der Datei zu überschreiben, habe ich mir ein Workaround gebastelt: Die Datei wird erst geöffnet und der komplette Inhalt in eine Variable $inhalt-alt geschrieben, dannach wird neu und alt verknüpft ( $inhalt-neu = $inhalt-neu . $inhalt-alt; ) und damit überschreibe ich dann komplett die vorhandene Datei.
Frage: Der Workaround funktioniert, aber geht das eleganter und besteht mit der jetzigen Lösung die Gefahr, dass bei wachsendem Inhalt der Datei der ganze Vorgang zu viel Perfomance verbraucht?
Gruß,
Std.
#2
M
Michael
Bekanntes Mitglied
Dabei seit
01.01.2001
Beiträge
2.134
Reaktionspunkte
0
Hi
Ja eigentlich musst du die Datei nur im Modus r+ öffnen statt a.
Wenn du nach dem lesen wieder den Zeiger an den Anfang setzen willst, dann gibt es diese Funktion dafür: http://www.php.net/manual/en/function.rewind.php
PS: Nicht ausprobiert, aber denke dann geht es
Gruß, Michael
#3
S
starlitmind
Bekanntes Mitglied
Themenersteller
Dabei seit
10.10.2001
Beiträge
62
Reaktionspunkte
0
Hi,
ich bin mir fast 100%ig sicher, das auch ausprobiert zu haben, und dass der Effekt war, dass die Daten in der Datei entsprechend der Länge des hineinzuschreibenden Strings überschrieben werden. Werd's aber trotzdem nochmal probieren...
Der Effekt ist der vermutete: Die vorhanden Daten in der Datei werden mit dem neuen String in dessen Länge überschrieben.
Mache ich was falsch?
Gruß
Std.
#5
M
Michael
Bekanntes Mitglied
Dabei seit
01.01.2001
Beiträge
2.134
Reaktionspunkte
0
Hi
Dann ist deine ursprüngliche Vorgehensweise auch die einzige dir mir noch einfallen würde.
Gruß, Michael
#6
S
starlitmind
Bekanntes Mitglied
Themenersteller
Dabei seit
10.10.2001
Beiträge
62
Reaktionspunkte
0
OK,
dann bin ich also wahrscheinlich doch nicht nur zu blöd...
Zur anderen Frage: Wird die ursprüngliche Vorgehensweise irgendwann kritisch, wenn die Datei, deren Inhalt ja jedesmal komplett gelesen und die danach jedesmal neu geschrieben wird, eine gewisse Größe erreicht? Ist mit Perfomanceproblemen zu rechnen, oder sollte ich vielleicht jedesmal vor dem Überschreiben ein Backup von der Datei machen lassen, für den Fall, dass beim Schreiben mal was schief geht?
Gruß,
Std.
#7
M
Michael
Bekanntes Mitglied
Dabei seit
01.01.2001
Beiträge
2.134
Reaktionspunkte
0
Hi
Warum auf wieviel MB wolltest du die Textfile denn aufblähen?
Also ich denke so ab 0.5 MB Größe könnte es bei vielen gleichzeitigen Zugriffen ein Engpass werden.
Speicher die Sachen doch in einer Datenbank, die ist besser dafür geeignet.
Gruß, Michael
#8
S
starlitmind
Bekanntes Mitglied
Themenersteller
Dabei seit
10.10.2001
Beiträge
62
Reaktionspunkte
0
Hi,
0,5 MB - alles klar. Ich belasse es vorerst bei der Textdatei; worum es geht, ist ein Minimal-Gästebuch, ohne großen Schnickschnack, mit allen Beiträgen auf einer einzigen Seite -- ich erwarte dort vorerst nicht allzu viele Postings. So kann ich die Einträge bei Bedarf auch einfach mit->nem Editor bearbeiten.
Außerdem beschäftige ich mich erst seit ca. 1 Woche (!) mit PHP, habe auch sonst noch nix mit Scriptsprachen (auch nicht JavaScript) am Hut gehabt, und meine derzeitigen Aktivitäten gehören noch mehr in den Bereich autodidaktische Übungen. Wenn ich mich in PHP selbst sicher fühle, kommt aber mit Sicherheit was mit PHP und MySQL an die Reihe...
(Thema von meiner Seite aus erstmal erledigt.)
Gruß,
Std.
#9
M
Michael
Bekanntes Mitglied
Dabei seit
01.01.2001
Beiträge
2.134
Reaktionspunkte
0
Hi
Also ein Gästebuch kannst du bis in alle Ewigkeit als Textfile laufen lassen ;D
Das lesen macht ihm nichts, denn die Datei sitzt im Cache und reinschreiben kommt ja auch nicht mehrmals in der Sekunde vor.
Gruß, Michael
Thema:
PHP: Wie an den Anfang einer Datei schreiben, ohne zu überschreiben?