Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

mit PHP Zeile aus Textdatei löschen

Empfohlene Antworten

Veröffentlicht

Hi,

kann man mit PHP aus einer Textdatei, eine bestimmte Zeile löschen?

Thx

KarlBerg

Ich schieb den Thread mal zur Webserverprogrammierung rüber... :)

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

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

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

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

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

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)

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

Danke,

$String=trim($String);

hat's geregelt :D

MfG

KarlBerg

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.