Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrócenie tekstu do 100 słów a html?
Forum PHP.pl > Forum > PHP
GryFF
Chcę skrócić newsy do xx zdań/słów lecz nie wiem jak potraktować html np jeżeli jest zdanie

Witam <strong>serdecznie</strong> na stronie <font color="#FFFFFF">xx</font>

Różne skrypty testowałem lecz zawsze liczą również html..
Sephirus
Na całym tekście użyj funkcji strip_tags() to Ci zostawi sam tekst bez znaczników. Potem za pomocą substr() lub czegoś podobnego skróć tekst. Jeżeli zależy Ci na tym by zachowywać słowa napisz funkcję, która będzie wykrywała czy ucięty ciąg kończy się na całym słowie wink.gif
Kshyhoo
Samo zapytanie do bazy również możesz ograniczyć, pobierając tylko jakąś ilość znaków:
  1. SUBSTRING(tresc, 1, 200)

Ja kiedyś używałem takiej nie całkiem doskonałej funkcji, znalezionej gdzieś w internecie:
  1. function przytnijTekst($tekst, $iloscZnakow, $zakonczenie = '...') {
  2. //jeśli tekst jest dłuższy od określonej ilości znaków dokonujemy modyfikacji
  3. if(strlen($tekst) > $iloscZnakow) {
  4. //ilość znaków pomniejszamy o ilość znaków końcówki dopisywanej na koniec tekstu
  5. $iloscZnakow -= strlen($zakonczenie);
  6. //z przesłanego tekstu wycinamy tekst o określonej ilości znaków
  7. $tekst = substr($tekst, 0, $iloscZnakow);
  8. //odwracamy tekst, tak że jest wyświetlany od końca
  9. $tekst = strrev($tekst);
  10. //funkcja zwraca tekst po pierwszym wystąpieniu spacji, co zabezpiecza nas
  11. //przed wyświetleniem tylko kawałka wyrazu
  12. $tekst = strstr($tekst, ' ');
  13. //gdy ciąg już jest prawidłowo przycięty odwracamy tekst ponownie
  14. $tekst = strrev($tekst);
  15. //usuwamy spacje z początku i końca tekstu
  16. $tekst = trim($tekst);
  17. //na sam koniec doklejamy końcówkę
  18. $tekst .= $zakonczenie;
  19. }
  20. return $tekst;
  21. }
  22.  
  23. echo przytnijTekst($tekst, 45);
vermis
Poszukaj w google 'html truncate'. Ja kiedyś używałem takiej funkcji, która ucinała tekst w html i domykała tagi. Działało to całkiem dobrze. Niestety nie pamiętam źródła tej biblioteki.
wNogachSpisz
Można to też zrobić po stronie przeglądarki:

  1. <div style="width:100px;overflow:hidden;white-space:nowrap">
  2. lorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsumlorem ipsum
  3. </div>


Ile słow zostanie wyświetlonych - nie wiadomo smile.gif
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.