Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obcięcie tekstu i kodowanie(?)
Forum PHP.pl > Forum > PHP
deha21
Potrzebuję skrócić tekst do 175 znaków. Mam taką funkcję (zresztą chyba z tego forum):
  1. function ciach($tresc,$ile) {
  2. $licz = strlen($tresc);
  3. if ($licz>=$ile) {
  4. $tnij = substr($tresc, 0,$ile);
  5. $txt = trim($tnij)."...";
  6. } else {
  7. $txt = $tresc;
  8. }
  9. return $txt;
  10. }

Po jej wywołaniu czasami na końcu znaków (ale przed "...") wyskakuje mi dziwny znak - czarny romb ze znakiem zapytania w środku. Wywnioskowałem, że to przez kodowanie bo często pojawia się on tam gdzie ma być polska litera.

P.S. Fajnie jakby ktoś pomógł ulepszyć ten skrypt, żeby obcinał tekst do ostatnie wyrazu i żeby nie przecinał ostatniego wyrazu w połowie.
nospor
Bo do utf8 uzywa sie mb_substr() a nie substr()
kreatiff
I jeszcze mb_strlen i pełnia szczęścia gotowa.
deha21
Myślałem że się udało ale jednak się nie udało. Stronę mam w UTF ale dane w tekst w bazie danych przechowywany mam jako latin2_general_ci. Dalej mam częściowo dziwne znaki.
EDIT: Przekształciłem tabelę w bazie oraz pole tekstowe na UTF-8 i dalej mam te dziwne znaki wyświetlane. W bazie ich nie ma. Zauważyłem, że dzieje się to gdy ostatnia litera obciętego już tekst to polska litera np. ł lub ą.
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.