Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrócenie tekstu do 100 słów a html?
GryFF
post
Post #1





Grupa: Zarejestrowani
Postów: 93
Pomógł: 0
Dołączył: 3.10.2011

Ostrzeżenie: (0%)
-----


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..
Go to the top of the page
+Quote Post
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #3





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




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);


Ten post edytował Kshyhoo 18.09.2012, 08:34:58
Go to the top of the page
+Quote Post
vermis
post
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 56
Dołączył: 3.06.2010
Skąd: Tarnowskie Góry

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #5





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

Ostrzeżenie: (40%)
XX---


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 (IMG:style_emoticons/default/smile.gif)

Ten post edytował wNogachSpisz 18.09.2012, 10:39:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 16:28