Gå til innhold

Slette linje fra fil


Anbefalte innlegg

Videoannonse
Annonse

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 av b-urn
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...