b-free
Goto Top

PHP: Zeile mit bestimmtem Inhalt komplett Löschen

Hallo,

ich habe folgendes Problem:

Ich habe ein Dateisystem programmiert, in dem alle Dateinamen in einer Datei aufgezeichnet sind. Aus dieser Datei werden die Namen später wieder ausgelesen. Wenn jetzt aber der Wunsch besteht, eine Datei zu Löschen, muss nicht nur die Datei an sich gelöscht werden, sondern auch der Eintrag in der Datei... Das ist mein Problem.

Ich habe vieles Probiert. leider hat nichts geklappt.

die Einzelnen Zeilen sollen Komplett gelöscht werden und sehen so aus:

Bildschirmfoto vom 2013-09-27 10:07:15.png|USERNAME|27.9.2013|USERNAME1,USERNAME2,USERNAME3

Mir währe wichtig, dass erstmal nur Dateiname und Username abgefragt werden. Also das es egal ist was dahinter steht. (In diesem Fall: |27.9.2013|USERNAME1,USERNAME2,USERNAME3)

Verstanden?

Tschau,
B-Free

Content-ID: 219565

Url: https://administrator.de/forum/php-zeile-mit-bestimmtem-inhalt-komplett-loeschen-219565.html

Ausgedruckt am: 23.12.2024 um 13:12 Uhr

colinardo
colinardo 16.10.2013, aktualisiert am 17.10.2013 um 12:29:40 Uhr
Goto Top
Hi,
So aus dem Stehgreif ungetestet beispielsweise so:
<?php
$database = "databasefile.txt";  
$suchDateiname = 'Testbild.png';  
$suchUser = 'USERNAME';  
$newFileString = "";  
$handle = fopen($database, "r");  
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        $parts = preg_split("/\|/", $line);  
        if (!($parts == $suchDateiname && $parts[1] == $suchUser)){
            $newFileString .= $line;
        }
    }
    if (!feof($handle)) {
        echo "Error: Unerwarteter fgets() Fehler\n";  
    }
    fclose($handle);
}
$handle = @fopen($database, "w");  
fwrite($handle, $newFileString);
fclose($handle);
?>

p.s. Warum machst du sowas nicht mit einer richtigen Datenbank ?
Grüße Uwe
B-free
B-free 16.10.2013 aktualisiert um 19:43:32 Uhr
Goto Top
Erstmal Danke!

Das Script werde ich Morgen testen, aber es sieht gut aus...


Eine Sache ist mir aufgefallen:

Ist das "!==" in:
    while (($line = fgets($handle)) !== false) { 
richtig?

Grüße
B-Free

ps. Nochmal Danke! face-smile
ps. *edit* Und wegen der Datenbank, da setze ich mich auch noch ran... irgendwann...
colinardo
colinardo 16.10.2013 aktualisiert um 20:10:08 Uhr
Goto Top
Zitat von @B-free:
Ist das "!==" in: ....... richtig?
http://www.php.net/manual/en/language.operators.comparison.php

Grüße Uwe
B-free
B-free 23.10.2013 um 16:46:43 Uhr
Goto Top
Danke!

Leider erst jetzt getestet...

Es geht alles!

Tschau
B-Free