Avatar billede mysitesolution Nybegynder
05. oktober 2004 - 23:52 Der er 6 kommentarer og
1 løsning

Slet linie i fil, ret linie i fil

hej...

har 2 spørgsmål til hver 75 points :)

1. Hvordan sletter man en betemt linie i en fil? ( skal bruge en funktion )

2. Hvordan tilføjger man en linie i en fil? ( skal bruge en funktion )
Avatar billede dennismp Nybegynder
05. oktober 2004 - 23:59 #1
$lines = file('dinfil.txt');
unset($lines[12]); // slet en linje (12)
$lines[] = "ny linje\n";
$fp = fopen('dinfil.txt','w') or die("Cannot open file for writing");
foreach($lines as $line)
  fputs($fp,$line);
fclose($fp);

kunne være een måde
Avatar billede dennismp Nybegynder
05. oktober 2004 - 23:59 #2
hvis flere kommer til at skrive i filen på (muligvis samme tid), så skal du lige bruge flock til at beskytte filen.
Avatar billede mysitesolution Nybegynder
06. oktober 2004 - 00:01 #3
øhm sagde som en funktion ;)

kan du så ikke tilføje det flock ting?
Avatar billede dennismp Nybegynder
06. oktober 2004 - 00:20 #4
Ja, men nu var dette jo ikke i opgaver - så jeg regnede med at du ville bare have hjælpe til at komme igang..

<?php
$datafile = '/tmp/test.log';

removeLine($datafile,1);
appendLine($datafile,'test');

function appendLine($datafile,$line) {
    $rc = false;
    $fp = fopen($datafile,'a') ;

    if( $fp ) {
        if( flock($fp,LOCK_EX) ) {
            fputs($fp,"$line\n");
            flock($fp,LOCK_UN);
            $rc = true;
        }
        fclose($fp);
    }

    return $rc;
}
function removeLine($datafile,$delline) {
    $rc = false;
    $fp = fopen($datafile,'r+') ;
    $delline--;

    if( $fp ) {
        if( flock($fp,LOCK_EX) ) {
            $lines = array();
            while (!feof($fp))
                $lines[] = fgets($fp);


            unset($lines[$delline]);

            ftruncate($fp,0);

            foreach($lines as $line)
                fputs($fp,$line);
            flock($fp,LOCK_UN);
            $rc = true;
        }
        fclose($fp);
    }

    return $rc;
}
Avatar billede dennismp Nybegynder
06. oktober 2004 - 00:56 #5
du får et svar, jeg smutter iseng.
Avatar billede mysitesolution Nybegynder
13. oktober 2004 - 22:21 #6
virker ikke :/
Avatar billede dennismp Nybegynder
13. oktober 2004 - 22:32 #7
Kan du være lidt mere præcis.. Det er svært at debugge "virker ikke" :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester