Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Podział tekstu na strony
Forum PHP.pl > Forum > PHP
kapitan kloss
Witacie. Mam jakiś problem z wyświetlaniem tekstu pobieranego z bazy na stronie tak aby dzielony on był na mniejsze cześci.

  1. <?php
  2. $tekst = $firma['tekst_pl']; // pobierany tekst
  3. $max = 1000; // maksymalna liczba znaków do wyświetlenia
  4. $spacja = ' '; // zakonczenie
  5. $dlugosc_cala = strlen($tekst); // ogolna liczba znakow w tekscie
  6.  
  7. ?>


Do tego momentu chyba wszystko gra, a teraz:
  1. <?php
  2.  
  3. if ($dlugosc_cala > $max) { 
  4.  if (isset($_GET['od'])) { 
  5. $od = $_GET['od']; //poczatek pokazywania
  6.  } else { 
  7. $od = 0; // poczatek pokazywania od zera
  8.  }
  9.  
  10.  // tekst o dlugosci $max uciety na koncu spacja
  11.  $pokaz = substr($tekst,$od,$max);
  12.  $pokaz = substr($tekst,$od,strlen($pokaz)-strpos(strrev($pokaz),$spacja));
  13.  
  14.  $dlugosc_pokaz = strlen("$pokaz");
  15.  
  16.  print "$pokaz";
  17.  
  18. } else { 
  19.  print "$tekst"; // tekst jest krotszy niz $max. Pokazujemy go calego
  20. }
  21. ?>


I niby wszystko działa, ale ostatnia strona jest źle podawane.
Może macie jakiś pomysł na podział tekstu na stronie.
nospor
a te $_GET['od'] co zawiera? Numer strony? np. 1,2,3,4?
czy zawiera od ktorego znaku? np.:1000, 2000, 3000.

bo jesli numer strony, to czy nie powinien on byc przemnażany przez $max?
kapitan kloss
Haaa, już wiem gdzie błąd. Chodziło o to, że na ostatniej stronie na której wyświetlany był tekst brakowało ostatniego wyrazu. Dlaczego?
Bo w bazie było wpisane "tekst tekst." (nie ma spacji na końcu).
Po wpisaniu w bazie "tekst tekst. " wszystko jest dobrze.

Czy zatem można tak zrobić ten kod
  1. <?php
  2. $pokaz = substr($tekst,$od,strlen($pokaz)-strpos(strrev($pokaz),$spacja));
  3. ?>
aby nie było tego błędu na zakończenia a jednocześnie żeby tekst nie był ucinany po 1000 znakach a ładnie po spacji przed 1000 znaków.
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.