Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obcięcie tekstu i kodowanie(?)
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


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.


--------------------
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Bo do utf8 uzywa sie mb_substr() a nie substr()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kreatiff
post
Post #3





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


I jeszcze mb_strlen i pełnia szczęścia gotowa.
Go to the top of the page
+Quote Post
deha21
post
Post #4





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


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 ą.

Ten post edytował deha21 3.07.2015, 22:33:21


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 04:30