Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z "fopen"
Forum PHP.pl > Forum > PHP
M4T3U5Z
Kod mam taki:

  1. <form action="<? '.getenv(REQUEST_URI).' ?>" method="post">
  2. <iframe name="shoutboxx" src="shoutbox.htm" marginwidth="1" marginheight="1" height="180" width="550" title="shoutbox" border="0" frameborder="0">
  3. Twoja przeglądarka nie obsługuje ramek wbudowanych lub jest obecnie skonfigurowana tak, aby nie wyświetlać ramek wbudowanych.
  4. <br>
  5. Login:
  6. <input type="text" name="xywa" size="12" >
  7. Wiadomość:
  8. <input type="text" name="wiadomosc" size="50" >
  9. <input type="submit" name="send" value="wyslij" >
  10. </form>
  11. <?
  12. $xywa =htmlspecialchars( $_POST["xywa"] );
  13. $tresc=htmlspecialchars( $_POST["wiadomosc"] );
  14. $data = date("[y.m.d H:i:s]");
  15.  
  16. $tekst="
  17. <p>$data $xywa: $tresc</p>";
  18.  
  19. if ($xywa && $tresc)
  20. {
  21. $plik = fopen("shoutbox.htm","r+");
  22. fwrite($plik,$tekst);
  23. fclose($plik);
  24. }
  25. ?>


I teraz w $plik = fopen("shoutbox.htm","r+"); opcja r+ oznacza zapisywanie do pliku treści od początku...
i coś mi nie trybi ta funkcja bo zmienia mi poprzedni tekst z pliku.. kasuje gragmenty i wogole robi jakies krzaki...
w czym jest problem?
webdice
Cytat(M4T3U5Z @ 11.06.2008, 20:57:52 ) *
I teraz w $plik = fopen("shoutbox.htm","r+"); opcja r+ oznacza zapisywanie do pliku treści od początku... (...)


r - read. Niewiele to ma z zapisywaniem wspólnego. Poczytaj sobie w manualu o fopen" title="Zobacz w manualu PHP" target="_manual.
M4T3U5Z
Cytat(webdicepl @ 11.06.2008, 21:02:39 ) *
r - read. Niewiele to ma z zapisywaniem wspólnego. Poczytaj sobie w manualu o [manual\]fopen\[/manual\].


r - zgadzam się ale ja mam r+

http://pl2.php.net/fopen

'r+' Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego początku.
nospor
Cytat
opcja r+ oznacza zapisywanie do pliku treści od początku...
hehe, chcialbys.

Cytat
'r+' Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego początku.
Wlasnie, umieszcza wskaznik na poczatku i kasuje wszystko przy zapisie co bylo dalej. tak to dziala smile.gif

ps: nie obraź sie czy cos takiego, ale zacznij pisac w dziale przedszkole, bo póki co Twoje probelmy mają taki poziom

ps2: nie da sie w latwy sposob dopisac czegos na poczatek pliku. Mozesz np. wczytac plik do zmiennej, dopisac cos na poczatek zmiennej i calosc ponownie wsadzic do tego pliku
M4T3U5Z
ale opcja r+ nie obcina mi całego pliku jak mówisz w każdym manualu pisze:

'r' Otwiera tylko do odczytu; umieszcza wskaźnik pliku na jego początku.
'r+' Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego początku.
'w' Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego początku i obcina plik do zerowej długości. Jeśli plik nie istnieje to próbuje go utworzyć.
'w+' Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego początku i obcina plik do zerowej długości. Jeśli plik nie istnieje to próbuje go utworzyć.
'a' Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego końcu. Jeśli plik nie istnieje to próbuje go utworzyć.
'a+' Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego końcu. Jeśli plik nie istnieje to próbuje go utworzyć.
'x' Tworzy i otwiera plik tylko do zapisu; umieszcza wskaźnik pliku na jego początku. Jeśli plik juz istnieje, wywołanie fopen() nie powiedzie się, zwróci FALSE i wygeneruje błąd na poziomie E_WARNING. Jeśli plik nie istnieje, spróbuje go utworzyć. To jest równoważne z określeniem flag O_EXCL|O_CREAT stosowanym w wywołaniu systemowym open(2).
'x+'
Tworzy i otwiera plik odczytu i zapisu; umieszcza wskaźnik pliku na jego początku. Jeśli plik juz istnieje, wywołanie fopen() nie powiedzie się, zwróci FALSE i wygeneruje błąd na poziomie E_WARNING. Jeśli plik nie istnieje, spróbuje go utworzyć. To jest równoważne z okresleniem flag O_EXCL|O_CREAT stosowanym w wywołaniu systemowym open(2).


Więc jeśli ja chcę Otwzorzyć plik do odczytu i zapisu i umieścić znacznik na początku pliku NIE KASUJĄC jego danych to stosuję jak pisze w manulau r+ i działa to połowicznie...
nospor
no tak, umieszcza wskaznik na poczatku i przy zapisie jedzie dalej piszac po pliku. nie przesuwa danych dalej tylko po nich jedzie nadpisujac je. Jak chcesz cos dopisac do pliku to napisalem ci w poprzednim poscie jak w sekcji "ps2" smile.gif
M4T3U5Z
ok dzięki już rozumiem... 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.