![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 21.03.2002 Skąd: Krakow Ostrzeżenie: (0%) ![]() ![]() |
problem polega na tym jak zapisac nowa wartosc do pliku na POCZATEK a nie na koniec tak jak to sie zwykle dzieje.
wymyslilem tak: plik_temp - plik pomocniczy plik_wl - plik do ktorego ma byc dopisana wartosc na poczatek 1. przepisac plik_wl do plik_temp 2. otworzyc plik fopen(plik_wl, w) 3. zapisac do pliku plik_wl nowa wartosc 4. dopisac do pliku plik_wl zawartosc pliku plik_temp tylko teraz jak to napisac w php (dopisac do pliku zawartosc innego pliku -tego nie wiem) probowalem przez copy ale to nie dopisuje tylko kasuje i zapisuje od nowa Jesli ktos moze pomoc to prosze |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
a nie lepiej wrzucic zawartosc calego pliku do tablicy, dodać nowy text funkcja [manual:597efd0b03]array_push[/manual:597efd0b03] potem odwrócic tablice [manual:597efd0b03]array_reverse [/manual:597efd0b03] i ponownie zapisac do pliku
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) ![]() ![]() |
Szybciej będzie:
1. fopen($plik_temp, 'w') 2. zapisać do pliku plik_temp nową wartość 3. dopisać do pliku plik_temp zawartość pliku plik_wl 4. rename($plik_temp, $plik_wl) [php:1:d4c895d2fc]<?php $temp = fopen($plik_temp, 'w'); flock($temp, 2); fwrite($temp, $nowa_wartosc); fwrite($temp, file_get_contents($plik_wl)); # to można oczywiście rozwiązać lepiej fclose($temp); rename($plik_temp, $plik_wl); ?>[/php:1:d4c895d2fc] |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 21.03.2002 Skąd: Krakow Ostrzeżenie: (0%) ![]() ![]() |
tak, wszystko dziala. dodalem taylko pare zmian.
[php:1:3a8332cad5]<?php copy($plik_wl,$plik_temp); $temp = fopen("$plik_temp", "w"); flock($temp, LOCK_EX); fwrite($temp,"nowa wartosc"); fwrite($temp, file_get_contents("$plik_wl")); # to można oczywiście rozwiązać lepiej fclose($temp); flock($temp, LOCK_UN); fclose($temp); # ta czesc po to aby nie tworzyc dwoch tych samych kopi # po zakonczeniu plik temp sie zeruje copy($plik_temp,$plik_wl); $temp = fopen("$plik_temp", "w"); fwrite($temp,""); flock($temp, LOCK_UN); fclose($temp); ?>[/php:1:3a8332cad5] teraz wszystko dziala dzieki |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 22:03 |