Klette Skrevet 15. februar 2004 Del 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? Lenke til kommentar
b-urn Skrevet 15. februar 2004 Del 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 Lenke til kommentar
???????? Skrevet 15. februar 2004 Del 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 ???????? Lenke til kommentar
b-urn Skrevet 15. februar 2004 Del 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 Lenke til kommentar
Klette Skrevet 15. februar 2004 Forfatter Del 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? Lenke til kommentar
jorgis Skrevet 15. februar 2004 Del Skrevet 15. februar 2004 Det er ikke verre enn å prøve... Lenke til kommentar
Klette Skrevet 15. februar 2004 Forfatter Del Skrevet 15. februar 2004 For å si det på en annen måte: Hvorfor fungerer ikke denne Lenke til kommentar
???????? Skrevet 15. februar 2004 Del 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. Lenke til kommentar
Klette Skrevet 15. februar 2004 Forfatter Del Skrevet 15. februar 2004 Enkelt? Hvorofr enkelt? Vanskelig ser mye bedre ut Lenke til kommentar
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å