Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Porcjonowanie danych z pliku
Forum PHP.pl > Forum > Przedszkole
tommy
Witam, pewnie rozwiazanie jest banalnie proste ale powiem szczerze ze szukalem rozwiazan w internecie i przyladowe tutoriale nie znajdowaly zastosowania w moim problemie...
mam baze danych w pliku gdzie dane zapisane sa w takiej postaci: tytul||tresc||data|#|. Ze wzgledu na to ze tresc moze byc dosc dluga funkcja file() ktora czyta plik linijka po linijce nie pasowala do mojego skryptu. Postanowilem wiec zrobic podwojne filtrowanie danych odczytanych z pliku. Najpierw za pomoca explode wczytuje do tablicy dane poprzedzielane |#| a nastepnie chce jeszcze raz przefiltrowac wynik zeby pozbyc sie || i wyswietlic na stronie 5 pierwszych wpisow. Napisalem taki prosciutki skrypt ale... nic nie wyswietla dlatego prosze o pomoc. Zapewne rozwiazanie jest banalnie proste...

  1. <?php
  2. $fp=fopen("plik.txt", "r");
  3. $contents=fread($fp, filesize("plik.txt"));
  4. $exp1=explode('|#|', $contents);
  5. foreach($exp1 as $val)
  6. {
  7. $exp2=explode('||', $val);
  8. }
  9. for($i=0;$i<4;$i++)
  10. {
  11. echo $exp2[$i].'<br>';
  12. }
  13. ?>


PS zaznaczam ze nie potrzebuje robic linkow generowanych przez php do wczesniejszych wpisow, samo odczytanie 5 pierwszych zupelnie wystarczy.
Dziekuje za pomoc i Pozdrawiam


~mike_mech
strife
  1. <?php
  2.  
  3. $exp2=explode('||', $val);
  4. }
  5. for($i=0;$i<4;$i++)
  6. {
  7. echo $exp2[$i].'<br>';
  8. }
  9.  
  10. ?>


Co ma Ci czytać skoro $exp2 nie jest tablicą?
tommy
OK ale w takim razie $exp1 tez nie jest tablica? Zrozumialem ze musze zrobic podwojne rozbicie calosci zawartej w pliku, najpierw zeby w tablicy otrzymac ciagi poprzedzielane|#| a nastepnie je porozdzielac pzrez wyluskanie z pomiedzy ||... i zarowno $exp! i $exp2 myslalem, ze sa tablicami...
Moze sie myle niewazne. Jaki jest jednak sposob na rozwiazanie problemu ktory przedstawilem?
Pozdrawiam!
dr_bonzo
  1. <?php
  2.  
  3. $dane = array();
  4. $dane[] = array(
  5. 'tytul' => 'Poznajemy serialize()',
  6. 'tresc' => 'zajrzyj do manuala',
  7. 'data' => 'dzisiaj'
  8. );
  9. // itd.
  10.  
  11. // zapis do pliku (zapisujesz wszystkie artykuly/newsy/czy co to jest)
  12. file_put_contents( $filename, serialize( $dane ) ); // lub fopen() + fwrite() jak masz php4
  13.  
  14. // odczyt
  15. $inneDane = unserialize( file_getcontents( $filename ) );
  16. $pierwszePiec = array_slice( $inneDane, 0, 5 );
  17. ?>

Wada: zeby odczytac 5 wpisow musisz wczytac caly plik
Zalety: prosto, szybko (nie meczysz sie z explode) i bezpiecznie (nie martwisz sie o escapowanie danych-- a co jak ktos wpisalby do tresci "|#"?)
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.