Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pliki - pomocy!
Forum PHP.pl > Forum > PHP
MiLupo
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
menic
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
adwol
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]
MiLupo
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
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.