Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] dziwny problem podczas edycji pliku
Forum PHP.pl > Forum > PHP
3miel
Witam,

mam mały problem... zrobiłem sobie edycje pliku PHP z ustawieniami. Kod wygląda następująco:

  1. <? 
  2. $sciezka = 'moduly/'.$modul.'/admin_'.$modul.'_ustawienia.php'; 
  3. $plik = fopen( $sciezka, 'r+' ); 
  4. $tresc = file_get_contents($sciezka); 
  5. $nowa_tresc = preg_replace('#wyswietlanych_pozycji=([0-9]{0,3});#', 'wyswietlanych_pozycji='.$_GET['wyswietlaj'].';', $tresc); 
  6.  
  7.  echo '<textarea rows="10" cols="60">'.$nowa_tresc.'</textarea><br />'; 
  8.  
  9. flock( $plik, LOCK_EX ); 
  10. fwrite( $plik, trim($nowa_tresc)); 
  11. flock( $plik, LOCK_UN ); 
  12. fclose( $plik ); 
  13. ?> 
  14.  
  15. // PLIK Z USTAIWNIAMI: 
  16. <? 
  17. $kaskadowe_menu=0;
  18. $wyswietlanych_pozycji=3;
  19. ?>



I tak, w textarea wyświetla się wszystko dobrze, tylko dzieją się dziwne rzeczy gdy się to sapisuje (fwrite), bo gdy zmienie ze w pliku ma się zapisac liczba 50 i pozniej spowroten na np 5 to na koncu pliku dodawany jest znak ">". Dlaczego?
Kicok
Otwórz sobie notatnik, napisz w nim "aaaa" i zapisz plik. Następnie otwórz go ponownie w notatniku, ustaw kursor na samym początku pliku (tuż przed pierwszym "a"), naciśnij Insert na klawiaturze i napisz "bbb". Dokładnie tak działa funkcja fopen z flagą r+

Ty w swoim kodzie musisz najpierw pobrać zawartość pliku, a następie otworzyć go z flagą w, żeby usunąć jego aktualną zawartość.
3miel
W sumie doszedłem do tego samego wniosku:) Tylko myślałem, że mozna to zrobic jakoś inaczej... no cóż, każdy sposób jest dobry.

Dziękuję i pozdrawiam.
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.