Avatar billede noob2003 Nybegynder
17. april 2005 - 11:14 Der er 4 kommentarer og
1 løsning

hjælp til script fejl

Jeg får en syntax error, unexpected T_VARIABLE i $fjernString, hvad er der galt ??

<?php
$text=$_GET['text'];
$text1=$_GET['text1'];   
$text2=$_GET['text2'];
$fil = "domain.dk.dns";
$fjernString = "$text        $text1        $text2";
  $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);
?>
Avatar billede Slettet bruger
17. april 2005 - 11:19 #1
Det gør jeg ikke...
Avatar billede Slettet bruger
17. april 2005 - 11:21 #2
Det ser iøvrigt ud til at du med fordel kan bruge file() http://dk2.php.net/manual/en/function.file.php
Avatar billede noob2003 Nybegynder
17. april 2005 - 11:26 #3
hmm nu er det sådan at jeg er vant til kun at arbejde med php/mysql, alt det der med filer osv. er ikke min stærke side, såå har du et eks jeg evt kan se ;-)
Avatar billede noob2003 Nybegynder
17. april 2005 - 23:36 #4
Ved ikke hvad der var galt med den virker nu ??????????????????????
Avatar billede olebole Juniormester
18. april 2005 - 02:36 #5
<ole>

el_barto >> file() er helt sikkert smartere at bruge, når der skal outputtes et array ... _men_ den er binary-safe og derfor temmelig langsom.
Derfor er det som oftest langt hurtigere at bruge file_get_contents() og splitte strengen. At så brugeren her anvender en langsom regExp-funktion til at splitte med - og dermed sætter hastigheds gevindsten over styr - er en anden sag  :)

Der burde stå:
  $indhold = file_get_contents($fil);
  $indhold = explode("\n",$indhold);

- og så ville det nok også være hensigtsmæssigt at rette:
  $contents = "";
  for($i=0;$i<count($indhold);$i++)
  {
    $contents .= $indhold[$i]."\n";
  }

- til:
  $contents = implode("\n", $indhold);

Da $indhold[$i] som oftest ender på tegnet '\r', ville det også være sikrere at spørge med:
  if (strpos($indhold[$i], $fjernString)!==false)

- når der skal slettes linier

/mvh
</bole>
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