Zum Inhalt springen

Empfohlene Beiträge

Geschrieben
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 :)

Geschrieben
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

Geschrieben
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

Geschrieben

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

Geschrieben

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);

Geschrieben

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)

Geschrieben

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...