KarlBerg Geschrieben 25. Mai 2002 Geschrieben 25. Mai 2002 Hi, kann man mit PHP aus einer Textdatei, eine bestimmte Zeile löschen? Thx KarlBerg Zitieren
Wolle Geschrieben 25. Mai 2002 Geschrieben 25. Mai 2002 Ich schieb den Thread mal zur Webserverprogrammierung rüber... Zitieren
Tool-Time Geschrieben 25. Mai 2002 Geschrieben 25. Mai 2002 Original geschrieben von KarlBerg Hi, kann man mit PHP aus einer Textdatei, eine bestimmte Zeile löschen? Thx KarlBerg Wo soll denn diese "Textdatei" liegen ? [ ] auf dem Webserver [ ] beim user - wie ein Cookie Vom prinzip her geht beides Zitieren
Impulz Geschrieben 26. Mai 2002 Geschrieben 26. Mai 2002 Original geschrieben von Tool-Time [ ] beim user - wie ein Cookie Vom prinzip her geht beides Ich moechte sehen wie du mit PHP (einer serverseitigen Programmiersprache) eine Client-Datei bearbeitest. Und ja, man kann relativ einfach eine Zeile aus einer Textdatei, die sich auf dem Server befindet loeschen. Z.B. indem man die komplette datei per file() in ein Array einliest (jede Zeile ist ein Element) und dann das entsprechende Element rausschmeisst (unset) und das Array nacher wieder mit implode zusammenfuegst und in die Datei schreibst. Alternativ kannste mit fgets eine Datei zeilenweise einlesen, die eine Zeile ueberspringen (bspw. anhand eines zaehlers den du mitlaufen laesst) und nacher das ganze wieder in die Datei schreiben. Das Prinzip ist also in beiden Faellen gleich. Einlesen, dabei die eine Zeile weglassen/rausschmeissen und das neue Ergebnis wieder in die Datei schreiben. gruss Michael Zitieren
Tool-Time Geschrieben 26. Mai 2002 Geschrieben 26. Mai 2002 Original geschrieben von Impulz Ich moechte sehen wie du mit PHP (einer serverseitigen Programmiersprache) eine Client-Datei bearbeitest. gruss Michael Warum sollte es nicht gehen ? Ich kann doch auch ein Cookie beim User hinterlegen, wenn ich nun den selben Weg gehe und stattdesen eine test.txt Datein hinterlege. Bzw. diese ändere ? Oder habe ich ihr einen Denkfehler ? Wie sieht es den aus, wenn ich die Textdatei per HTTP zum Server hochlade und php sie soweit ändert, wie das Script es braucht und die Datei speichern wir wieder Lokal bis denn Tool-Time Zitieren
Impulz Geschrieben 26. Mai 2002 Geschrieben 26. Mai 2002 Cookies ist ne spezielle Unterstuetzung der Browser dafuer. Das sind ja auch nur kleine Datenschnipsel. Und wie die gespeichert werden kannst du nicht beeinflussen. Auf Textdateien kannst du so keinesfalls zugreifen. Waer ja noch schoener wenn jeder auf alle Dateien auf meiner Platte zugreifen koennte Uploaden (HTML Formular), dann editieren und speichern ginge, allerdings ist dort natuerlich die ganze Zeit User-Interaktion erforderlich (er muss es hochladen, er muss die Datei wieder ueberschreiben). Und das eigentliche editieren geschieht dann auch nur auf dem Server. gruss Michael Zitieren
KarlBerg Geschrieben 26. Mai 2002 Autor Geschrieben 26. Mai 2002 Hi, danke für die Antworten. Hab inzwischen ein wenig rumgebastelt, und bin auf ein Problem gestossen. Hab was geschrieben, aber leider funktionierts net. Der Code soll erkennen, wann die Zeile kommt in der "<head> steht, und dann "FRED" dahinterschreiben (ist nur vorläufig zum testen gedacht, später kommt schon noch was sinnvolles dazu ) Vielleicht hat einer ne Idee. $file = fopen ("http://www.disclaimer.de/disclaimer.htm", "r"); if (!$file) { echo "<p>Konnte den Disclaimer nicht öffnen\n"; exit; } while (!feof ($file)) { $line = fgets ($file, 1024); if ($line == "<head>"){ echo "FRED"; } echo $line; } fclose($file); Zitieren
etreu Geschrieben 26. Mai 2002 Geschrieben 26. Mai 2002 Dein Problem dürfte sein dass eventuell Leerzeichen vorhanden sind. Probiere das ganze doch mal mit: $String=trim($String); [/PHP] Wie wär es denn einfach mit der Funktion ereg_replace()? Sie durchsucht einen String und ersetzt diesen Wert durch einen gewünschten: [PHP] $String = ereg_replace($Suchmuster,$Ersatz, $Zeichenkette) Zitieren
Impulz Geschrieben 27. Mai 2002 Geschrieben 27. Mai 2002 ereg is leider ziemlich langsam. Einfacher waere es anstatt == "<head>" die funktion strstr() zu benutzen um zu ueberpruefen ob ein teilstring in einem string vorhanden is. Es koennte sein dass auch das \n am Ende der Zeile noch mitgelesen wird, das muesstest du sonst nochmal getrennt rausfiltern. gruss Michael Zitieren
KarlBerg Geschrieben 28. Mai 2002 Autor Geschrieben 28. Mai 2002 Danke, $String=trim($String); hat's geregelt MfG KarlBerg Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.