Veröffentlicht 25. Mai 200223 j Hi, kann man mit PHP aus einer Textdatei, eine bestimmte Zeile löschen? Thx KarlBerg
25. Mai 200223 j 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
26. Mai 200223 j 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
26. Mai 200223 j 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
26. Mai 200223 j 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
26. Mai 200223 j 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);
26. Mai 200223 j 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)
27. Mai 200223 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.