Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skracanie ciagu znakow
Forum PHP.pl > Forum > PHP
attimo
Witam,

Chciałem zrobić by jakiś tekst który przekracza określoną liczbe znaków został skrócony najprościej jest użyć substr, ale to dosyć nieładnie wygląda jak jakiś wyraz jest ucięty. Dlatego pokombinowałem i chciałem zrobić tak aby po przekroczeniu danej ilości znakow wyraz byl dokonczony po czym zostalyby napisane 3 kropki. wyglada to tak:
  1. $a = chr(32); // znak spacji
  2. $length = strlen($rekord['opis']); // przypisanie dlugsci znakow
  3. $pre = substr($rekord['opis'], 25); // wyciecie tego co jest ponad limit
  4. $b = strpos($pre, $a); // zwrocenie pozycji wystapienia pierwszej spacji od 25 znaku
  5. $pre2 = substr($pre,25,$b); // wyciecie kawalka od 25 znaku do spacji
  6. $pre3 = substr($rekord['opis'],0,25) . $pre2; // podstawowe 25 znakow plus nadwyzka do spacji
  7. if($length > 25) {
  8. echo $pre3 . "...";
  9. }
  10. else {
  11. echo substr($rekord['opis'],0,25);
  12. }

Efekt tego jest taki, że działa tak jak bym to wyciął za pomocą funkcji substr. Pytanie dlaczego ?
Crozin
Prostsza wersja:
  1. $limit = 200;
  2.  
  3. if (strlen($text) > $limit) {
  4. $text = substr($text, 0, strpos($text, ' ', $limit)) . '...';
  5. }
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.