Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pytanie o...
Forum PHP.pl > Forum > Przedszkole
Gość_michał
Mam małe pytanie:
Mam plik.txt w nim jakieś dane oddzielone "|" , mam odpowiedną pętle kóra wyświetla te dane na jednej stronie. Chodzi o to jak zrobić aby na jednej stronie wyświetlało się np 10 pierwszych linuii z pliku, na drugiej stronie kolejne 10 itd.

Bardzo proszę o odpowiedź
sobstel
poszukaj pod hasłem "stronnicowanie" a o operacjach na plikach zajrzyj do manuala (http://pl2.php.net/manual/en/ref.filesystem.php)
mike
Fakt temat był już poruszany tysiące razy, wystarczy wpisać do wyszukiwarki stronicowanie i można przebierać w tematach i roziązaniach.
Ale na zachętę podam poglądowy kodzik (bo mi się nudzi winksmiley.jpg ), który może się przydać:
  1. <?php
  2.  
  3. error_reporting( E_ALL );
  4. ini_set( 'display_errors', 1 );
  5.  
  6. $intElementsOnPage = 10; // ilość elementów na stronie
  7.  
  8. $strText = file_get_contents( 'text.txt' ); // pobranie zawartości pliku
  9.  
  10. $arrElements = explode( '|', $strText ); // rozpibie na tablicę
  11. $intCount = count( $arrElements ); // zprawdzenie ilości wszystkich elementów
  12.  
  13. $_GET[ 'page' ] = ( empty( $_GET[ 'page' ] ) ) ? 1 : $_GET[ 'page' ]; // ustawienie numeru strony, w razie jego braku
  14.  
  15. $arrPage = array_slice( $arrElements, ( ( $_GET[ 'page' ] - 1 )* $intElementsOnPage ), $intElementsOnPage ); // wyciącie odpowiedniego kawałka ze wszystkich elementów
  16.  
  17. echo '<pre>'; print_r( $arrPage ); echo '</pre>'; // wylistowanie bierzącej tablicy/strony
  18.  
  19. // Pokazanie paska do nawidacji
  20. for( $i = 1, $last = ceil( $intCount / $intElementsOnPage ); $i <= $last; $i++ )
  21. {
  22. echo '<a href="?page=' . $i . '">' . $i . '</a> | ';
  23. }
  24. // ---
  25.  
  26. ?>


Tak mogłoby to wyglądać na najbardziej banelnej, napisanej na kolanie, wersji.

P.S. Plik text.txt, z którego pobieramy dane wygląda tak:
Cytat
fveknker|kervh nkw|ref er|wefwfw|wef wr hwgh|ytjn76|2rv4tb ht yh|wef wef wf g eh| tehb3ybyb#|y3b3 y5 3y5


----edit----
Proszę następnym razem podawać tematy bardziej związane z problemem, a nie tak ogólnikowe, nic nie mówiące jak ten powyżej.
Dziękuję.
~mike_mech
Gość_michał
Bardzo dziękuję za pomoc, ale mam jeszcze jedno pytanie. Mianowicie chodzi o to aby: pierwszym elementem był link do www, drugim adres e-mail i tak dalej...
BNez stronicowania wyglądało to mniej więcej tak:
  1. <?php 
  2. $file = file("text.txt");
  3. foreach($file as $value) {
  4. $exp = explode("|",$value);
  5. WWW: <a href="http://'.$exp[2].'">'.$exp[2].'</a> <br> 
  6. E-mail: <a href="mailto:'.$exp[1].'">'.$exp[1].'</a> <br> ; 
  7. } 
  8. ?>


A jak ma to wyglądać ze stronicowaniem??
Gość_Michał
questionmark.gifquestionmark.gif
aleksander
-jedna linia = jeden wpis
-otwierasz file_get_contents
-robisz explode przez "\r\n" i masz array jedna komorka = jedna linia
- foreach tej tablicy i kazda komorke explodujesz przez "|"
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.