Avatar billede noob2003 Nybegynder
12. april 2005 - 07:58 Der er 10 kommentarer og
1 løsning

remove text

jeg har en fil der opretter text i fil, men kan den laves om til at fjerne angivet text i file med samme form for output som eks.

eks. for oprette text
<?php
$filename = 'test.txt';
$somecontent = "$text\n";

// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {

  // In our example we're opening $filename in append mode.
  // The file pointer is at the bottom of the file hence
  // that's where $somecontent will go when we fwrite() it.
  if (!$handle = fopen($filename, 'a')) {
        echo "Cannot open file ($filename)";
        exit;
  }

  // Write $somecontent to our opened file.
  if (fwrite($handle, $somecontent) === FALSE) {
      echo "Cannot write to file ($filename)";
      exit;
  }
 
  echo "Success, wrote ($somecontent) to file ($filename)";
 
  fclose($handle);

} else {
  echo "The file $filename is not writable";
}
?>
Avatar billede hyberpreprocessor Nybegynder
12. april 2005 - 08:15 #1
Du henter teksten, looper den igennem og fjerner den valgte linje, og skriver den ud igen, med w+
Avatar billede noob2003 Nybegynder
12. april 2005 - 08:29 #2
WOW lyder smart, men ved ikke hvordan man gør det (på skrift) ;-)
Avatar billede hyberpreprocessor Nybegynder
12. april 2005 - 09:23 #3
<?php
$fil = "hej.txt";
$fjernString = "denne tekst bliver fjernet";
$indhold = file_get_contents($fil);
$indhold = split("\n",$indhold);
for($i=0;$i<count($indhold);$i++)
{
  if($indhold[$i] == $fjernString) { unset($indhold[$i]); }
}
?>
Avatar billede noob2003 Nybegynder
12. april 2005 - 09:34 #4
det virker ikke desværre, og inden fejl meddelse
Avatar billede hyberpreprocessor Nybegynder
12. april 2005 - 09:37 #5
tjoo, det virker, den skriver bare ikke teksten ned i filen igen :) det glemte jeg nemlig.

<?php
$fil = "hej.txt";
$fjernString = "denne tekst bliver fjernet";
$indhold = file_get_contents($fil);
$indhold = split("\n",$indhold);
for($i=0;$i<count($indhold);$i++)
{
  if($indhold[$i] == $fjernString) { unset($indhold[$i]); }
}
$contents = "";
for($i=0;$i<count($indhold);$i++)
{
  $contents .= $indhold[$i]."\n";
}
$handle = fopen($fil);
fwrite($contents,"w+");
?>
Avatar billede noob2003 Nybegynder
12. april 2005 - 09:41 #6
Warning: fopen() expects at least 2 parameters, 1 given in slet.php on line 15

Warning: fwrite(): supplied argument is not a valid stream resource in slet.php on line 16
Avatar billede hyberpreprocessor Nybegynder
12. april 2005 - 09:41 #7
ja, havde lige forbyttet et par kommandoer, kommer med rettelse om lidt.
Avatar billede noob2003 Nybegynder
12. april 2005 - 09:44 #8
er det muligt af få den til
echo "Cannot write to file ($filename)";
echo "Success, wrote ($somecontent) to file ($filename)";
Avatar billede hyberpreprocessor Nybegynder
12. april 2005 - 10:22 #9
så virker der.

<?php

  $fil = "fil.txt";
  $fjernString = "med";
  $indhold = file_get_contents($fil);
  $indhold = split("\n",$indhold);
  for($i=0;$i<count($indhold);$i++)
  {
    $indhold[$i] = trim(str_replace("\n","",$indhold[$i]));
  }
  for($i=0;$i<count($indhold);$i++)
  {
    if($indhold[$i] == $fjernString)
    {
      unset($indhold[$i]);
    }
  }
  $contents = "";
  for($i=0;$i<count($indhold);$i++)
  {
    $contents .= $indhold[$i]."\n";
  }

  $handle = fopen($fil,"w+");
  fwrite($handle,$contents);
  fclose($handle);

?>

Du kan selv tilføje sikkerhedsfunktionerne
Avatar billede noob2003 Nybegynder
12. april 2005 - 11:25 #10
Tak skal du ha, må nok siger er sku bedre til php/mysql en det her text add/edit/remove gylle ;-)

Smider du et svar ??
Avatar billede hyberpreprocessor Nybegynder
12. april 2005 - 11:28 #11
Database er også en del bedre strukturet end textfiler :)
Et fil med data i objekt, array eller csv format er også nemmere at arbejde med.

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