Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Problem z zapisem do pliku., Problem z zapisem do pliku.
scr1pt3r
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 3
Dołączył: 27.08.2011
Skąd: Los Angeles

Ostrzeżenie: (0%)
-----


  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.
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


  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);

Go to the top of the page
+Quote Post
scr1pt3r
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 3
Dołączył: 27.08.2011
Skąd: Los Angeles

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował scr1pt3r 27.08.2011, 09:30:28
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Oczywiście, możesz użyć fopen (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)

Co do nadpisywania:
  1. $string_wyjsciowy = $content . $ciagWyjsciowy; //$content przechowuje zawartość pliku plik.txt
  2. file_put_contents($file_path, $string_wyjsciowy);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 21:40