Autor |
Nachricht |
Kerstin77
Threadersteller
Dabei seit: 12.03.2007
Ort: 52° 2' N, 8° 55' O
Alter: 46
Geschlecht:
|
Verfasst So 03.06.2007 22:05
Titel PHP: Inhalt einer geöffneten Textdatei löschen |
|
|
Hallo,
gibt es eine Möglichkeit (PHP-Befehl), den Inhalt einer bereits geöffneten Textdatei komplett zu löschen?
Danke schonmal für Antworten!
Kerstin
|
|
|
|
|
dastef
Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht:
|
Verfasst So 03.06.2007 22:42
Titel
|
|
|
inwiefern geöffnet? und wenn zB mit fopen(), mit welchen Rechten?
|
|
|
|
|
Anzeige
|
|
|
Kerstin77
Threadersteller
Dabei seit: 12.03.2007
Ort: 52° 2' N, 8° 55' O
Alter: 46
Geschlecht:
|
Verfasst So 03.06.2007 23:07
Titel
|
|
|
Also, ich habe mir ein Gästebuch mit Adminbereich zusammengebastelt und möchte nun einzelne Einträge löschen. Das Gästebuch basiert auf einer Textdatei (Datenbank leider nicht vorhanden). Da das löschen einzelner Zeilen aus einer Textdatei ja nicht direkt möglich ist, habe ich es so gelöst:
1. Datei zum lesen und schreiben öffnen
2. Inhalt in ein Array schreiben (1 Zeile = 1 Arrayelement)
3. löschen des gewünschten Arrayelements
4. Array als String ausgeben und wieder in Textdatei schreiben
Funktioniert auch soweit Allerdings werden beim neuschreiben der Datei jedoch nur so viele Zeichen überschrieben, wie der String lang ist, d.h. daß nach dem letzten Eintrag (wo die Datei dann eigentlich zu Ende sein sollte), noch Text enthalten ist.
Hier mein Code:
Code: | //Eintrag löschen
if (isset($_REQUEST["delete"])) {
//Datei öffnen und für anderweitigen Zugriff sperren, Fehlermeldung bei doppeltem Zugriff
$fp = fopen($datei,"r+");
flock($fp, 2) or die("<div class=\"formdanke\">
<br>
<div class=\"t2 g\">Fehler!</div>
<p>Dateizugriff von mehreren Usern gleichzeitig leider nicht möglich.</p>
$hpende");
//kompletten Inhalt der Datei in Array schreiben, Arrayelement löschen
$gbarray = file('../phpscript/gbeintrag.txt');
unset($gbarray[$index]);
$txtinhalt = implode("||**||", $gbarray);
$txtinhalt = str_replace("||**||", "", $txtinhalt);
//Datei löschen, Inhalt wieder in Datei schreiben
fputs($fp, "$txtinhalt");
fclose($fp);
//Meldung anzeigen: löschen erfolgreich
die("<div class=\"formdanke\">
<br>
<div class=\"t2 g\">Eintrag gelöscht!</div>
<p>Der Eintrag wurde erfolgreich gelöscht.</p>
$hpende");
} |
Kerstin
|
|
|
|
|
Kerstin77
Threadersteller
Dabei seit: 12.03.2007
Ort: 52° 2' N, 8° 55' O
Alter: 46
Geschlecht:
|
Verfasst Di 05.06.2007 11:10
Titel
|
|
|
Hat sich erledingt, hab es anders gelöst. Jetzt lese ich die Datei erst aus, dann öffne ich sie im "w"-Modus und schwupps ist sie leer.
Kerstin
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Di 05.06.2007 11:19
Titel
|
|
|
wäre es nicht wesentlich eleganter anstatt einer textdatei eine xml datei zu nutzen?
nur mal so am rande...
|
|
|
|
|
Kerstin77
Threadersteller
Dabei seit: 12.03.2007
Ort: 52° 2' N, 8° 55' O
Alter: 46
Geschlecht:
|
Verfasst Di 05.06.2007 11:24
Titel
|
|
|
mag sein, aber mit xml kenne ich mich leider überhaupt nicht aus
Kerstin
|
|
|
|
|
Benutzer 28377
Account gelöscht
Ort: -
|
Verfasst Mi 06.06.2007 12:31
Titel
|
|
|
Noch eleganter wäre es eine DB zu benutzen, die wesentlich bessere Performance bringt als Zugriffe zu einer TXT- oder XML-Datei.
|
|
|
|
|
SPL1FFSTAR
Dabei seit: 04.06.2007
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 06.06.2007 13:57
Titel
|
|
|
ich hätte einfach ein leerzeichen reingeschrieben, kA
|
|
|
|
|
|
|
|
Ähnliche Themen |
Bei Klick in Formularfeld Inhalt löschen.. - JavaScript?
alten document.write(); inhalt löschen
Container Inhalt löschen bevor ein neuer geladen wird
PDF-Namen einer geöffneten Datei im Reader kopieren?
Via PHP in Textdatei schreiben. Wie?
[PHP] Textdatei mit BOM ausgeben?
|
|