Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wpisy do pliku - jak zrobic odstepy
Ksiaze
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 25.02.2010

Ostrzeżenie: (0%)
-----


Szukalem rozwiazania jak umiescic wpisy do pliku w kolejnosci "od gory do dolu". Znalazlem taki kod. Niestety nie oddziela od siebie wpisow, laczy je z poprzednim wpisem. Probowalem roznych sztuczek, ale nie potrafie sobie poradzic. je


Oto kod:

  1. <?php
  2.  
  3. // zmienna $dane, która będzie zapisana
  4. // może także pochodzić z formularza np. $dane = $_POST['dane'];
  5. $dane="$jakas_zmienna\n";
  6.  
  7. // przypisanie zmniennej $file nazwy pliku
  8. $file="baza.txt";
  9.  
  10. // uchwyt pliku, otwarcie do odczytu i dopisania
  11. $fp=fopen("$file", "r+");
  12.  
  13. // dodanie do zmiennej dane poprzedniej zawartości pliku
  14. $dane=$dane.fread($fp, filesize($file));
  15.  
  16. // ustawienie kursora na początku pliku
  17. rewind($fp);
  18.  
  19. // blokada pliku do zapisu
  20. flock($fp, 2);
  21.  
  22. // zapisanie danych do pliku
  23. fwrite($fp, $dane);
  24.  
  25. // odblokowanie pliku
  26. flock($fp, 3);
  27.  
  28. // zamknięcie pliku
  29. fclose($fp);
  30. ?>


Ten post edytował Ksiaze 26.02.2010, 22:22:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Cytat
jak umiescic wpisy do pliku w kolejnosci "od gory do dolu"
- po co tak? To nielogiczne, nowe dane są zawsze dopisywane na końcu pliku - rozumiem odczytywać od końca, ale zapisywać? Nie da się tego wygodnie zrobić, bo trzeba albo wczytać cały plik do pamięci, co jest mało wydajne i nie będzie działać przy dużych plikach, albo odczytać plik linia po linii i dopisać go do zmiennej, która ma być na początku pliku.
Go to the top of the page
+Quote Post
Ksiaze
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 25.02.2010

Ostrzeżenie: (0%)
-----


Cytat(Pilsener @ 26.02.2010, 23:55:41 ) *
- po co tak? To nielogiczne, nowe dane są zawsze dopisywane na końcu pliku - rozumiem odczytywać od końca, ale zapisywać? Nie da się tego wygodnie zrobić, bo trzeba albo wczytać cały plik do pamięci, co jest mało wydajne i nie będzie działać przy dużych plikach, albo odczytać plik linia po linii i dopisać go do zmiennej, która ma być na początku pliku.

Zgadza sie, wszystko musi ladowac. Ale dlugo szukalem i wszedzie powtarzaja wlasnie to rozwiazanie. A musi byc na poczatku, taki wymog ktos stawia. Pozdrawiam.

Cytat(DiH @ 1.03.2010, 02:52:43 ) *
Jeżeli posiadasz hosta z PHP5, to aż prosi się o użycie:
file_put_contents i file_get_contents

No tak, o tym wlasnie napisalem wyzej. (IMG:style_emoticons/default/tongue.gif)

Cytat(DiH @ 1.03.2010, 02:52:43 ) *
Jeżeli posiadasz hosta z PHP5, to aż prosi się o użycie:
file_put_contents i file_get_contents

No tak, o tym wlasnie napisalem wyzej.

No tak, o tym wlasnie napisalem wyzej.

No tak, o tym wlasnie napisalem wyzej.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 01:28