Avatar billede jakobsen Nybegynder
05. april 2005 - 16:15 Der er 14 kommentarer

PHP gemme i en fil?

hvordan får man php til at write en fil?

jeg har

$test = "da vi var små, var vi ikke store";

og vil gerne have det gemt i en .txt fil,
evt. gerne så den poper frem og spørger om man vil gemme?
Avatar billede bromer Nybegynder
05. april 2005 - 16:20 #1
du skal se på fopen og fputs

$fp = fopen('minfil.txt','w');
fputs($fp,$test);
Avatar billede barklund Nybegynder
05. april 2005 - 16:21 #2
Du mener en lokal fil på brugerens egen computer? Altså så brugeren får en popup, der siger "Vil du gemme den her til min.txt?" Så skal du outputte den og smide en content-disposition header - og evt. en content-type header.
Avatar billede dennismp Nybegynder
05. april 2005 - 16:31 #3
http://dk.php.net/header

Sidste eksempel, før brugerkommentarene har et lille eksempel på headers du skal bruge hvis du (i eksemplets tilfælde) vil sende en pdf-fil
Avatar billede jakobsen Nybegynder
05. april 2005 - 17:52 #4
nej, jeg har noget data i mysql jeg vil hive ud i en .txt fil
Avatar billede bromer Nybegynder
05. april 2005 - 17:57 #5
Okay, men det kommer lidt an på, hvor du vil gemme filen. Hvis du vil gemme filen på den maskine der kører PHP skal og du har teksten i $test kan du bruge følgende

-- gempaasamemmaskine.php --
$fp = fopen('minfil.txxt','w');
fwrite($fp,$test);
fclose($fp);
-- end of file

Hvis du derimod vil sende filen til den bruger der nu gang besøger din side kan du gøre følgende

-- downloadfile.php (der må ikke være noget output før denne kode --
header("Content-type: text/plain");
echo $test;
-- end of file

Det burde gøre det. Ellers må du lige sige til og specificere dit problem yderligere
Avatar billede bromer Nybegynder
05. april 2005 - 18:25 #6
Der bør også være en Content-Disposition header på så det samlede bliver:

-- downloadfile.php (der må ikke være noget output før denne kode --
header("Content-type: text/plain");
header("Content-Disposition: attachment; filename=" . $filename . ";
          modification-date=\"" . date("Y-m-d H:i:s") . "\";
        Content-Description: beskriv din fil");
echo $test;
-- end of file
Avatar billede jakobsen Nybegynder
11. april 2005 - 21:15 #7
jeg skal hive det ud fra sql det jeg vil have i filen.. kan man det?
Avatar billede barklund Nybegynder
11. april 2005 - 21:16 #8
Ja
Avatar billede bromer Nybegynder
11. april 2005 - 21:17 #9
Ja, det er jo bare at placere indholdet i $test (altså hvis du benytter det sidte kode jeg pastede).
Avatar billede jakobsen Nybegynder
11. april 2005 - 21:40 #10
hmmm sikker .. den printer det blot på skærmen her så
Avatar billede barklund Nybegynder
11. april 2005 - 21:41 #11
Du skal jo også sende alle de passende header's - kom med et link til din fil, så kan vi teste :)
Avatar billede jakobsen Nybegynder
11. april 2005 - 21:58 #12
har fundet ud af det.

laver du et svar?

hvordan laver man linieskift i sådan en fil?
og hvorfor er noget af teksten firkanter? som om noget af
det er ukendt symboler/tekst ..
Avatar billede jakobsen Nybegynder
11. april 2005 - 22:03 #13
\r virker ... men så kan notebook ikke læse filen
Avatar billede barklund Nybegynder
11. april 2005 - 22:08 #14
Skal det læses på en windows maskine (og er resten af filen en windows ascii fil) så er det \r\n
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