Klette Skrevet 15. februar 2004 Skrevet 15. februar 2004 Er dette mulig i PHP? har en fil med brukernavn og passord. Jeg kan jo finne meg fram til linje nummeret ved hjelp av foreach(), men kan jeg få slettet en linje?
b-urn Skrevet 15. februar 2004 Skrevet 15. februar 2004 (endret) Hmm... Tror ikke du kan slette data rett fra fila sånn helt uten videre. En mulig løsning (om enn ikke for veldig store textfiler siden data leses inn i minnet): $strFile = "testfile.txt"; $intIndex = 2; //Lese inn data fra fil til array $strData = file("$strFile"); //Skrive tilbake til fil $fp = fopen("$strFile","w"); foreach($strData as $key=>$strLine) { if ($key!=$intIndex ) fwrite($fp,$strLine); } fclose($fp); Endret 15. februar 2004 av b-urn
???????? Skrevet 15. februar 2004 Skrevet 15. februar 2004 (endret) Det er ikke noe problem. Les inn filen i en array med $linjer = file("filen.txt"); Da kan du bare unset() f.eks. $linjer[4] Så leser du den bare tilbake. Endret 15. februar 2004 av ????????
b-urn Skrevet 15. februar 2004 Skrevet 15. februar 2004 (endret) Hmm...hvis du bruker unset på en indeksert array... hva skjer da med indekseringen? Endret 15. februar 2004 av b-urn
Klette Skrevet 15. februar 2004 Forfatter Skrevet 15. februar 2004 function delUser($username) { $userfile = "userdb.txt"; $lines = file($userfile); $i = "1"; foreach($lines as $line){ $info = explode("|", $line); if( $info[0] == $username ) { $strFile = $userfile; $intIndex = $i; $strData = file("$strFile"); $fp = fopen("$strFile","w"); foreach($strData as $key=>$strLine) { if ($key!=$intIndex ) fwrite($fp,$strLine); } fclose($fp); break; } $i++; } } Burde ikke denne fungere?
Klette Skrevet 15. februar 2004 Forfatter Skrevet 15. februar 2004 For å si det på en annen måte: Hvorfor fungerer ikke denne
???????? Skrevet 15. februar 2004 Skrevet 15. februar 2004 Hmm...hvis du bruker unset på en indeksert array... hva skjer da med indekseringen? Det er avhengig av sammenhengen, hele den delen av variablen blir slettet. Klette, gør det enklere: <?php $filen = "passord.txt"; $innhold = file_get_contents($filen); $innhold = str_replace("passord:brukernavn\r\n", "", $innhold); $åpne = fopen($filen, "w"); fwrite($åpne, $innhold); fclose($åpne); ?> Denne: $innhold = str_replace("passord:brukernavn\r\n", "", $innhold); fjerner den linjen. For å passe på at det ikke blir noen tomme linjer bruker du \r\n på slutten hvis du bruker windows, og \n hvis du bruker linux.
Klette Skrevet 15. februar 2004 Forfatter Skrevet 15. februar 2004 Enkelt? Hvorofr enkelt? Vanskelig ser mye bedre ut
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå