phpbar.de logo

Mailinglisten-Archive

[php] textdateien handling

[php] textdateien handling

Michael Stahmann Michael_(at)_Stahmann.de
Thu, 27 Jul 2000 12:32:19 +0200


Hallo M | 3 | P | H | i | 5 | T | 0  (lennart),

M | 3 | P | H | i | 5 | T | 0 schrieb:

> hi!
>
> ich hatte vor ein paar tagen mal gefragt, ob mir jemand mit textdateien
> helfen kann (öffnen, schreiben).
> Also, ich möchte lieber textdateien benutzen, da mir der Aufwand mit mysql
> zu gross ist und die daten,
> die in die textdateien gespeichert werden sollen nur zahlen bzw. urls sind,
> so dass es egal ist, ob jemand versucht diese zu lesen.
>
>

Als Anmerkung:
Du solltest Dir von Anfang an eine gute Strucktur für Deine Textfiles überlegen.

Am besten eignet sich das csv-Format, welches auch mit Excel gut bearbeiten
lässt. Dann kann man große "Pflege-Aktionen" auch offline erledigen.
(csv - heist mit Semikolon getrennt ";")

> 1) PHP3-Script
>
>    Ich weiss zwar, wie man eine datei öffnet, und einen string reinschreibt,
> und ausliest, jedoch nicht, wie man an das ende der datei kommt, die letzte
> zahl ausliesst, , diese um 1 erhöht und die neue zahl unter die alte
> schreibt. vielleicht kann mir jemand damit helfen.
>

Das ist im Manual genau erklärt:
http://www.php-center.de/de-html-manual/function.fopen.html

schau mal bei "mode" (r,w,a)

Ansonsten kannst Du Dir auch einmal irgendwo ein Gästebuch ohne Datenbank
runterladen und Dir die Beispiele genau ansehen.

>
> 2) String aus URL lesen
>
>    wie amn einen string aus einer url liesst, ist mir mitlerweile auch
> bekannt, jedoch nicht, wie ich in einer textdatei an eine bestimmte zeile
> springen kann ( z.b. 12 ), diese zahl in der zeile auslesen kann, um 1
> erhöhen kann und dann die neue zahl an die gleiche stelle, anstelle der
> alten abspeichere.

=> Entweder bis einschließlich Datensatz 11 einlesen
=> dann bei 12 etwas ändern.
=> Rest verarbeiten
=> zurückschreiben

oder folgendes lesen.
http://www.koehntopp.de/php/faq-10.html#ss10.5

In der FAQ ist beschrieben, wie man einen Datensatz löscht oder hinzufügt.
Statt desen kann man ihn ja auch ändern.
Hier wird der empfehlenswerte Weg über eine Temp-Datei gewählt.

>
> vielleicht kann mir ja jetzt einer von euch helfen.  es wäre wirklich nett,
> denn ich weis absolut nicht, wie ich an eine bestimmte stelle in einer
> textdatei springen kann und dort werte ändere.
>

Wie ich oben schon sagte, ist eine gute Strukturierung wichtig.
Ich gebe jedem "Datensatz" immer eine eindeutige ID. Wenn ich dann etwas löschen
will, ist das die einfachste Lösung. Für die Generierung einer ID eigenen sich
die verschiedensten Wege. Der einfachste wäre einfach ein "externer" Counter,
der einfach einen weiter zählt, wenn ein Datensatz hinzugefügt wird.
Gut ist auch ein timestamp, den kann man dann auch noch gut weiterverwenden.

Noch ein Tip:
Wenn Du nicht der einzige bist, der auf die Daten schreibend zugreift, empfehle
ich Dir noch die Funktion flock :
http://www.php-center.de/de-html-manual/function.flock.html

Trotzdem wirst Du eines Tages bei MySQL landen, auch wenn für kleine Dinge deine
jetzige Variante einfacher erscheint.

Für wirklich professionelle Anwendungen kommt man nicht drum herum.

Hätte ich damals bei einem OnlineShop gleich auf MySQL gesetzt, müsste ich heute
nicht so viel "Nachsitzen" :-)

Gruß Michael
--
--------------------------------------------------------
Michael Stahmann,      web-xact.de <website-development>
http://www.web-xact.de           mailto:info_(at)_web-xact.de
Burchardstr. 10, D-28217 Bremen, Tel/Fax 0421-3887750/51
--------------------------------------------------------




php::bar PHP Wiki   -   Listenarchive