Avatar billede drinkit Praktikant
04. november 2003 - 15:35 Der er 24 kommentarer og
1 løsning

Skriv til en .txt fil

$file = "$fil";
$fp = fopen($file, "w+");
$dump = "<br><b>$navn</b><br>$message
";
fputs($fp, $dump);
fclose($fp);
}

Den skriver til en .txt fil.. Men den overskriver hele tiden sig selv.. Hvad nu hvis den skal skrive ovenover det der stod i filen før .. Forstår i? se eks. http://80.63.96.228/nyt/ og prøv shoutboxen ude til højre.. den overskriver sig selv. og den SKAL skrive ovenover det andet der står i filen.. ikke nedenunder.. Hjææælp!
Avatar billede fangel Nybegynder
04. november 2003 - 15:37 #1
brug "r" istedet for "w+" - så skal filen findes, men til gengæld skriver den til bunden af filen istedet for at trunkere

Morten
Avatar billede drinkit Praktikant
04. november 2003 - 15:39 #2
Kan jeg ikke få den til at skrive øverst i filen.. Fordi at:
readfile ("../include/shout.txt")
jo læser den fra bunden, og så vil det nyeste shout kommer nederst = Ikke fedt!
Avatar billede the_ghost Nybegynder
04. november 2003 - 15:39 #3
Hvorfor SKAL den skrive ovenover???
Hvis det er for at hente det ud i en korrekt rækkefølge kan du vel bare starte fra bunden!!!
Avatar billede the_ghost Nybegynder
04. november 2003 - 15:41 #4
eks.

$indhold = file("test.txt");
for ($i = count($indhold)-1; $i >=0; $i--)
{
  //bla. bla. bla.
}
Avatar billede drinkit Praktikant
04. november 2003 - 15:42 #5
<? 
$fil = "../include/shout.txt";
$message = str_replace ("<", " ", $message);
$message = str_replace (">", " ", $message);
$message = stripslashes ($message);
if ($message != "" && $navn != "" && $navn != "Dit navn!" && $message != "Shout!"){
$fp = fopen($fil, "r");
$dump = "<br><b>$navn</b><br>$message
";
fputs($fp, $dump);
fclose($fp);
}
readfile ("../include/shout.txt")
?>

Sådan ser mit scripts ud NU .. og nu skriver den slet ikke til txt filen!?


Ret det lige til så det der står øverst i txt filen bliver vist øverst.. Og sådan at den skriver øverst i filen, og ikke overskriver det gamle osv.. tak!
Avatar billede drinkit Praktikant
04. november 2003 - 15:43 #6
Ja sry.. Den kan også bare skrive nederst.. Hvis den så bare henter rigtigt!
Avatar billede fangel Nybegynder
04. november 2003 - 15:51 #7
hov, jeg ville have foreslået "a" - men efter at have læst http://php.net/fopen tror jeg at "r+" måske er bedre, ved dog ikke om den overskriver - men den trunkerer ikke

Morten
Avatar billede the_ghost Nybegynder
04. november 2003 - 15:58 #8
<? 
$fil = "../include/shout.txt";
$message = str_replace ("<", " ", $message);
$message = str_replace (">", " ", $message);
$message = stripslashes ($message);
if ($message != "" && $navn != "" && $navn != "Dit navn!" && $message != "Shout!"){
$fp = fopen($fil, "r");
$dump = "<br><b>$navn</b><br>$message
";
fputs($fp, $dump);
fclose($fp);
}
$indhold = file("../include/shout.txt");
for ($i = count($indhold)-1; $i >=0; $i--)
{
  $test = chop($indhold[$i]);
  echo $test;
  echo "<BR>";
}
?>
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:03 #9
Skift
$fp = fopen($fil, "r");

ud med

$fp = fopen($fil, "a+");

og skift

$dump = "<br><b>$navn</b><br>$message";

ud med

$dump = "<br><b>$navn</b><br>$message\n";
Avatar billede drinkit Praktikant
04. november 2003 - 16:03 #10
http://80.63.96.228/nyt/ Det virker altså slet ikke nu !? :/
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:07 #11
har du skiftet de 2 linier???
Avatar billede drinkit Praktikant
04. november 2003 - 16:15 #12
nej.. prøver det lige :P Sry.. skulle lige spise!
Avatar billede drinkit Praktikant
04. november 2003 - 16:17 #13
http://80.63.96.228/nyt/ Nu virker det.. Men den sætter alt ind to gange og med dobbelt mellemrum :) !
Avatar billede drinkit Praktikant
04. november 2003 - 16:18 #14
skal lige siges at jeg kører windows på min server..Faktisk windows Xp.. ret skod.. ved det.. Men det gør jeg!
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:20 #15
Så sæt denne linie ind igen... (der er fjernet "\n")

$dump = "<br><b>$navn</b><br>$message";
Avatar billede drinkit Praktikant
04. november 2003 - 16:20 #16
Har rettet fejlen med at den skriver alt to gange.. - Det var en kodningsfejl i submit knappen..
Avatar billede drinkit Praktikant
04. november 2003 - 16:20 #17
Tror den er der nu :)
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:21 #18
Det ser da ud til at virker her!!!
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:21 #19
ahhh.. fino
Avatar billede drinkit Praktikant
04. november 2003 - 16:21 #20
$test = chop($indhold[$i]);
  echo $test;
  echo "<br>";

kan det ik godt slettes ?
Avatar billede drinkit Praktikant
04. november 2003 - 16:22 #21
<? 
$fil = "../include/shout.txt";
$message = str_replace ("<", " ", $message);
$message = str_replace (">", " ", $message);
$message = stripslashes ($message);
if ($message != "" && $navn != "" && $navn != "Dit navn!" && $message != "Shout!"){
$fp = fopen($fil, "a+");
$dump = "<br><b>$navn</b><br>$message";
fputs($fp, $dump);
fclose($fp);
}
$indhold = file("../include/shout.txt");
for ($i = count($indhold)-1; $i >=0; $i--)
{
  $test = chop($indhold[$i]);
  echo $test;
  echo "<br>";
}
?>

Slet lige alt det der er overflødigt, det skal være så enkelt som muligt.. Så jeg kan lære af det.. Og bruge det andre gange!
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:26 #22
Du kan ikke slette noget, da chop($indhold[$i]); tager den sidste linie i filen og ligger den i variablen $test.
echo $test //udskriver så linien
echo $test //laver et mellemrum mellem linierne.
... og så starter det hele forfra bare med den næstsidste linie
Avatar billede drinkit Praktikant
04. november 2003 - 16:26 #23
takkker for den gode hjælp :)
Avatar billede fangel Nybegynder
04. november 2003 - 16:27 #24
det ville være enkelt med en MySQL database - det bør alle PHP-hackere kunne ;) (hacker as in god - not as in cracker)

MySQL databaser letter arbejder omkring så mange ting - plus at det øger hastigheden!

Morten
Avatar billede the_ghost Nybegynder
04. november 2003 - 16:28 #25
np
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