Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stronnicowanie po raz kolejny
Forum PHP.pl > Forum > PHP
prazool
no więc szkukałem na forum i nie tylko na tym forum, w goglach wszędzie, że sie dało i nie znalazłem takiej najprostszej rzeczy jak stronnicowanie samego tekstu. Chodzi mi o to, że mam załóżmy tekst w pliku "plik.txt", i chce go podzielić na kilka stron. Wszędzie znalazłem tylko jak podzielic wyniki zaprezentowane w tabeli, lub jakies dane z bazy danej. ja chce na plikach..

na forum znalzlem nawet coś ciekawego ale niedziala sad.gif:

  1. <?
  2.  
  3. $article=&#092;"bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  4.  
  5. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  6.  
  7. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  8.  
  9. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  10.  
  11. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  12.  
  13. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  14.  
  15. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  16.  
  17. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  18.  
  19. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  20.  
  21. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  22.  
  23. bla bla bla bla bla {breakpage} bla bla bla bla bla bla bla bla bla bla bla 
  24.  
  25. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  26.  
  27. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  28.  
  29. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  30.  
  31. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  32.  
  33. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  34.  
  35. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  36.  
  37. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  38.  
  39. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  40.  
  41. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  42.  
  43. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  44.  
  45. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  46.  
  47. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  48.  
  49. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  50.  
  51. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  52.  
  53. bla bla bla bla bla bla bla bla bla bla {breakpage} bla bla bla bla bla bla 
  54.  
  55. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  56.  
  57. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  58.  
  59. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  60.  
  61. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  62.  
  63. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  64.  
  65. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  66.  
  67. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  68.  
  69. bla bla bla bla bla bla bla bla bla bla {breakpage} bla bla bla bla bla bla 
  70.  
  71. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  72.  
  73. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  74.  
  75. bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla 
  76.  
  77. bla bla bla bla bla bla bla bla bla bla bla bla bla bla&#092;";
  78.  
  79. if(!$_GET['p'])
  80. {
  81.  $page = 1;
  82. }
  83. else
  84. {
  85.  $page = $_GET['p'];
  86. }
  87.  
  88. $strona = explode(&#092;"{breakpage}\", $article);
  89. $site = $page;
  90. $site--;
  91. $article_thissite = $strona[$site]; // ta zmienna zawiera część artykułu
  92.  
  93. // wyswietlamy linki do stron:
  94. $sites = count($strona);
  95. $next = $page;
  96. $next++;
  97.  
  98. echo 'Strony:';
  99. for($i=1; $i<$sites; $i++)
  100. {
  101.  if($i !== $page)
  102.  {
  103. echo '&nbsp;[<a href=\"articles.php?p='.$i.'\">'.$i.'</a>]';
  104.  }
  105.  else
  106.  {
  107. echo '&nbsp;[<b>'.$i.'</b>]';
  108.  }
  109. }
  110. ?>


owszem dzieli na strony, ale nie wyświetla tekstu, powinno byc podzielone bla bla bla wtedy gdy jest te {breakpage} ale nie dziala: sprawdźcie

zrobilem jeszcze druga wersje, która owszem działa, ale dzieli nie równo tekst a ja chcialbym zeby tak bardzo sie linijki nie różniły np. do 20 linijek, a nie że w jednej jest 50 w drugiej 10 a w trzeciej 30.. looknijcie na - 2 skrypt

podaje kod

  1. <?php
  2. echo(&#092;"<font face=tahoma size=1 color=#4e4940><b>PIERWSZA SAMODZIELNA KOMPANIA COMMANDO</b><br><br>\");
  3. echo(&#092;"<p align=justify><font color=#4e4940 face=tahoma size=2>\");
  4. define('MAX', 10); // maksymalna liczba wpisow na stronie
  5. $file = 'recenzja.txt';
  6.  
  7. $aLines = file($file);
  8. $iCount = count($aLines);
  9.  
  10. $iStart = @(int)$_GET['start'];
  11.  
  12. for($i=$iStart; $i < $iCount && $i < $iStart + 10; $i++) {
  13. echo $aLines[$i].'<br />';
  14. }
  15.  
  16. if($iCount > MAX) {
  17. pagenumbering($iStart, MAX, $iCount, '');
  18.  
  19. }
  20.  
  21. /**
  22. * $start - od ktorej pozycji mamy wyswietlac infromacje
  23. * $one_page - ile informacji na jednej stronie
  24. * $quantity - calkowita ilosc informacji mozliwych do wyswietlenia
  25. * $get - czesc url, przesyla potrzebne dane
  26. */
  27. function pagenumbering($start, $one_page, $quantity, $get='') {
  28.  
  29. // czy potrzebne jest stronicowanie
  30. if($one_page >= $quantity) {
  31. return;
  32. }
  33.  
  34. // strzalka w lewo, wstecz
  35. if($start!=0) {
  36. echo '<a href=\"?'. $get .'&amp;start='. ($start-$one_page) .'\">wstecz</a> ';
  37. }
  38.  
  39. // numeruj strony, zaznacz na ktorej jestes
  40. for($i=0, $j=1; $i<$quantity; $i+=$one_page, ++$j) {
  41. if($start <= $i && $start > $i-$one_page) {
  42. echo $j.' ';
  43. }
  44. else {
  45. echo '<a href=\"?'. $get .'&amp;start='. $i .'\">'. $j .'</a> ';
  46. }
  47. }
  48.  
  49. // strzalka w prawo, dalej
  50. if($start+$one_page < $quantity) {
  51. echo '<a href=\"?'. $get .'&amp;start='. ($start+$one_page) .'\">dalej</a>';
  52. }
  53.  
  54. }
  55.  
  56. ?>


mam nadzieje ze mi jakos pomożecie, bo nie daje rady mecze sie już pare dni.... jbardziej zalezy mi na tym pierwszym skrypcie bo ma wiecej sensu niz ten drugi, moge sobie lamac kiedy chce, a nie jakos nie wymiarowo....
Michał2000
No wiec znam chyba na to rozwiazanie...

Jezeli masz jakis tekst w zmiennej $tekst mozna napisac:

  1. <?php
  2. if (eregi('[a-zA-Z0-9]{100}', $tekst))
  3. {
  4. //i tu jakas funkcja która po 100 znakach doda znacznik dzielacy strone
  5. }
  6.  
  7. ?>


Mysle zeto w tym kierunku trzeba isc... Pomysle jak to zrobic i nnapisze...
prazool
no pomóżcie sad.gif((((
tiraeth
1. Pobierz artykuł do zmiennej.
2. Eksploduj ją: $explode = explode("\n", $zmienna)
3. Sprawdź ile jest linijek: count($explode)
4. Podziel to sobie np. po 50 linijek: $strony = count($explode)/50
5. Zaokrąglij do góry: ceil($strony)
6. Dalej pomoże Ci tylko inteligencja, bo sam sposób podziału podałem smile.gif
prazool
nie moge dać sobie rady.. moze ktos zaprezentować i omówić na przykładzie (nie chce gotowca)
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.