Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zapisanie do txt i sciagniecie pliku na dysk
Forum PHP.pl > Forum > Przedszkole
roghatt
Witam
mam jakies dane zapisane w zmiennych np. $a, $b, $c.
Kazda zmienna zawiera jakies znaki.

Chcialbym aby na stronie byl link albo przycisk po kliknieciu ktorego dane z tych trzech zmiennych zapisuja sie dp pliku txt jedno za drugim i np. po sredniku czyli:
aaaa;bbbb;cccc
Po kliknieciu w link albo w przycisk zeby taki plik txt mozna bylo sciagnac i zapisac na dysku.
W jaki sposob to zrobic?
tomsi
Złącz sobie te 3 zmienne w jedną, np. tak:
  1. $d = $a.';'.$b.';'.$c;

potem zrób kod (wykonujący się dopiero po kliknięciu na przycisk Pomoc), który doda zawartość nowej zmiennej do pliku:

http://www.egrafik.pl/kurs-php/files.writing.php
http://www.kess.snug.pl/?sid=10&pid=19
http://webmade.org/porady/zapis-pliku-odcz...plikach-php.php


P.S.
Aha jeszcze zapis na dysk....

http://us3.php.net/manual/en/function.readfile.php
roghatt
dzięki tomsi za odpowiedz, duzo mi to pomoglo
mam tylko jeszcze pare pytan
oto moj kod:
  1. while($row=mysql_fetch_array($wynik4))
  2.  
  3. {
  4.  
  5. $nazwa=$row['nazwa'];
  6. $cenan=$row['cenan'];
  7. $podatek=$row['podatek'];
  8. $pkwiu=$row['pkwiu'];
  9. $jm=$row['jm'];
  10. $kreska=$row['kreska'];
  11. $nrfaktury=$row['nrfaktury'];
  12. $ilosc=$row['ilosc'];
  13. $ceespol=$kreska.';'.$ilosc.';'.$cenan.';'.$nazwa.';'.$podatek.';'.$pkwiu.';'.$jm.';'.$nrfaktury.'<br/>';
  14. echo "<br>";
  15. echo $ceespol;
  16.  
  17.  
  18. // przypisanie zmniennej $file nazwy pliku
  19. $file = "$nrfaktury.txt";
  20. // uchwyt pliku, otwarcie do dopisania na początku pliku
  21. $fp = fopen($file, "a");
  22.  
  23. // blokada pliku do zapisu
  24. flock($fp, 2);
  25.  
  26. // zapisanie danych do pliku
  27. fwrite($fp, $ceespol);
  28.  
  29. // odblokowanie pliku
  30. flock($fp, 3);
  31.  
  32. // zamknięcie pliku
  33. fclose($fp);
  34. }


mam to robione w petli i zapisuje i wypisuje mi te dane do pliku txt tak jak chce, ale w sumie proste pewnie dla Was pytanie, jak przejsc do nastepnej linii?
  1. $ceespol=$kreska.';'.$ilosc.';'.$cenan.';'.$nazwa.';'.$podatek.';'.$pkwiu.';'.$jm.';'.$nrfaktury.'<br/>';

probowalem <br>, probowalem /n i mi zamiast przechodzic to mi to wypisuje jedno za drugim, chyba ze w zlym miejscu to /n uzywam? gdzie to wstawic?


odnosnie zapisywania na dysk to
http://us3.php.net/manual/en/function.readfile.php
nie dziala u mnie.. w powyzszym kodzie na koncu dodaje ten kod i w miejscach gdzie jest
  1. header('Content-Description: File Transfer');
  2. header('Content-Type: application/octet-stream');
  3. header('Content-Disposition: attachment; filename='.basename($file));
  4. header('Content-Transfer-Encoding: binary');
  5. header('Expires: 0');
  6. header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  7. header('Pragma: public');
  8. header('Content-Length: ' . filesize($file));


wysypuje mi bledy typu
Warning: Cannot modify header information - headers already sent by (output started at....

O co chodzi?

tomsi
Do pierwszego problemu:

http://forum.php.pl/index.php?showtopic=81218
http://forum.php.pl/index.php?showtopic=77321

Drugi problem:

http://forum.php.pl/index.php?showtopic=78...=0&p=400716

A tutaj podstawy do operacji na plikach tekstowych:

http://www.internetmaker.pl/artykul/2470,1...na_plikach.html

Jeśli pomogłem poprzednio to kliknij w POMÓGŁ smile.gif Jeśli teraz pomogłem to też kliknij w POMÓGŁ smile.gif
roghatt
oczywiscie smile.gif chcialem to zrobic ale pozniej smile.gif

edytowalem swoj wpis chyba jak pisales swojego posta, z drugim problemem sobie poradzilem, z nastepna linijka rowniez, ale tezn trzeci problem ktory napisalem czyli sciaganie pliku?
Czy to zadziala jak ten kod do sciagania wklejam w tym samym pliku co te wpisywanie do pliku?

tomsi
A jak dodasz tak jak tam jest, czyli
  1. if (file_exists($file)) {
  2.  
  3. ...
  4.  
  5. flush();
  6. readfile($file);
  7. }


to też jest źle?

Może dodaj to narazie w inny skrypt i zobacz czy to Ci w ogóle działa. Jak będzie ok to postaraj się to wrzucić dopiero we właściwy skrypt.
b_chmura
  1. <?php
  2.  
  3. /* zapis danych do pliku */
  4.  
  5. while($dane = mysql_fetch_array($wynik4))
  6.  
  7. {
  8. $line = $dane['kreska'].';'.$dane['ilosc'].';'.$dane['cenan'].';'.$dane['nazwa'].';'.$dane['podatek'].';'.$dane['pkwiu'].';'.$dane['jm'].';'.$dane['nrfaktury']."\n";
  9.  
  10. file_put_contents($dane['nrfaktury'].'.txt', $line);
  11.  
  12. }
  13.  
  14. /* wysył danych do ściągnięcia */
  15.  
  16. header('Content-type: text/plain');
  17. header('Content-Disposition: attachment; filename="'.$nazwa_pliku.'.text"');
  18. header('Content-Length: '.filesize($sciezka_dopliku.'/'.$nazwa_pliku.'.txt'));
  19. header("Pragma: no-cache");
  20.  
  21. readfile($sciezka_dopliku.'/'.$nazwa_pliku.'.txt');
  22.  
  23.  
  24. //Jak Ci wyskoczął jakieś błędy z header na samym poczatku pliku dodaj
  25.  
  26. ?>


Pisane z palca, możliwe literówki.

Pozdrawiam smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.