[PHP] Dopisywanie na początku pliku

[PHP] Dopisywanie na początku pliku
TrOuBLE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 716
0

Witam .
Mam plik z danymi . Chce dodać jakieś dane do tego pliku , ale zaczynając dodawanie od jego początku , bez utraty danych , które były w pliku wcześniej . Po prostu to co było w nim wcześniej będzie "przesuwane" dalej . Jak to zrobić w php ??

dchcorp
  • Rejestracja: dni
  • Ostatnio: dni
0

Odczytaj zawartość pliku, do stringa, dodaj na pocz. stringa swoje dane i nadpisz te dane na stare. To mozna zrobic tylko raz otwierając plik dzieku fseek()

TrOuBLE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 716
0

Że tak można to wiem , niestety ten sposób nie jest zbyt dobry dla dużych plików , zakładając , że pamięć RAM przypadająca na stronke w php na serwerach jest ograniczona . Możliwe , że inaczej sie nie da .
Chyba będę musiał robić to na około , ale jak będzie trzeba to wybiore sposób bez fseeka :
otwieram plik w trybie "r" , zczytuje cały do stringa , zamykam , otwieram w trybie "w" , zapisuje to co potrzebowałem na początku i dopisuje stringa .

dchcorp
  • Rejestracja: dni
  • Ostatnio: dni
0

Że tak można to wiem , niestety ten sposób nie jest zbyt dobry dla dużych plików , zakładając , że pamięć RAM przypadająca na stronke w php na serwerach jest ograniczona . Możliwe , że inaczej sie nie da .
Chyba będę musiał robić to na około , ale jak będzie trzeba to wybiore sposób bez fseeka :
otwieram plik w trybie "r" , zczytuje cały do stringa , zamykam , otwieram w trybie "w" , zapisuje to co potrzebowałem na początku i dopisuje stringa .

Trouble, to jest prawie ta sama metoda co moja, tyle ze Ty otwierasz plik 2x, a ja raz.

TrOuBLE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 716
0

Trouble, to jest prawie ta sama metoda co moja, tyle ze Ty otwierasz plik 2x, a ja raz.

dchcopr - masz całkowitą racje . Ale przyznam ci szczerze , że twoja metoda jest jeszcze lepsza , gdyż lepiej otworzyć plik 1 raz , zakładając , że plik może być blokowany/ktoś inny może też z niego korzystać . Ostatecznie otworzyłem ten plik raz na "r+" , odczytałem wszystko , użyłem fajnej funkcji rewind() ;) i dopisałem string .
Ale jak mówiłem , to jest droga naokoło . Może ktoś zna lepszy sposób ...

CH
  • Rejestracja: dni
  • Ostatnio: dni
PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
0

Ja to robie tak:
[code]
$nazwa = "nazwa.pliku";
$wpis = "tresc danych do dodania";
$plik = fopen($nazwa, "r+");
$wpis=$wpis.fread($plik, filesize($nazwa));
rewind($plik);
fputs($plik, $wpis);
fclose($plik);
[/code]

prościej nie potrafie

TrOuBLE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 716
0

Właśnie tak zrobiłem , ale to przejdzie tylko dla małych plików :(

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.