Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z zapisem do pliku.
Forum PHP.pl > Forum > Przedszkole
scr1pt3r
  1. $gotfile = fopen ( "$DOCUMENT_ROOT/../plik.txt", 'ab' ) ;
  2.  
  3. if ( !$gotfile )
  4. {
  5. echo "Nie mozna otworzyć pliku !";
  6. exit ;
  7. }
  8.  
  9. if ( !$cache )
  10. {
  11. $ciagWyjsciowy = "Nie mam danych na temat zmiennej z formularza !\n";
  12. }
  13. else
  14. {
  15. $ciagWyjsciowy = "Zapisuje zmienną z formularza - > ".$cache.'\n' ;
  16. }
  17.  
  18. $zapis = fwrite( $gotfile, $ciagWyjsciowy, strlen( $ciagwWjsciowy ) ) ;
  19. echo $zapis ;


Kiedy stowrzyłem sam plik i próbowałem do niego zapisać to coś, to po otwarciu go nic w nim nie było. Potem usnałem by funkcja sama go utworzyła, no i utworzyła tylko znów się nic do niego nie zapisywało.
CuteOne
  1. $file_path = 'folder/plik.txt';// pamiętaj o podaniu poprawnej ścieżki do pliku
  2.  
  3. $content = file_get_contents($file_path);
  4.  
  5. if($content === FALSE) {
  6. echo "Nie mozna otworzyć pliku !";
  7. exit ;
  8. }
  9.  
  10. if ( !$cache )
  11. {
  12. $ciagWyjsciowy = "Nie mam danych na temat zmiennej z formularza !\n";
  13. }
  14. else
  15. {
  16. $ciagWyjsciowy = "Zapisuje zmienną z formularza - > ".$cache.'\n' ;
  17. }
  18.  
  19. file_put_contents($file_path, $ciagWyjsciowy);

scr1pt3r
Zrobiłem identycznie do przykłądu z książki PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty Wyd. 4. Ta książka ma tyle błędów, ehhh. Czemu nie może być z fopen i write oraz zmieniłeś na FALSE w argumencie ? Btw. twoja metoda nadpisuje więc trzeba chyba zrobić $ciagWyjsciowy .= $cache, No tak ?
CuteOne
Oczywiście, możesz użyć fopen smile.gif Ale jest to dość niewygodne - przed otwarciem pliku przydało by się sprawdzić czy istnieje(file_exists()) następnie otworzyć z ODPOWIEDNIM parametrem (drugi parametr np. 'a') zapisać i zamknąć. W przypadku file_get|put_contents nie pilnujesz parametru, nie otwierasz i nie zamykasz pliku. Jedną funkcją (file_get_contents), możesz sprawdzić czy plik nie jest pusty (stąd !== FALSE) oraz wczytać jego zawartość do zmiennej.

Po prostu jest to bardziej wygodne podejście a przy moim trybie pracy gdzie coś trzeba napisać na wczoraj nie mam czasu na zastanawianie się czy 'w+' czy 'a' i czy wszystkie pliki pozamykałem smile.gif

Co do nadpisywania:
  1. $string_wyjsciowy = $content . $ciagWyjsciowy; //$content przechowuje zawartość pliku plik.txt
  2. file_put_contents($file_path, $string_wyjsciowy);
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.