Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: utf8 i strlen - ucianie jednego bita
Forum PHP.pl > Forum > PHP
tosiek
Witam. Mam pytanko jak oduczyć ucinania jednago bita znaku polskiego w tej funkcji:

  1. <?php
  2. if ( count($orig_word) )
  3.        {
  4.            $similar['topic_title'] = @preg_replace($orig_word, $replacement_word, $similar['topic_title']);
  5.        }
  6.  
  7.        $title = (strlen($similar['topic_title']) > 40) ? (substr($similar['topic_title'], 0, 37) . '...') : $similar['topic_title'];
  8.        $topic_url = '<a href="'. append_sid("viewtopic.$phpEx?". POST_TOPIC_URL .'='. $similar['topic_id']) .'">'. $title . '</a>'
  9. ?>


Ponieważ gdy jest tekst typu:
Spider Friendly - przepisywanie link�...

To zapewne odczytało tlyko jeden bit polskiego znaku ó z dwóch, (bo w utf8 polskie znaki składaja sie z dóch takich krzaczków)

I jak to poprawić żeby brało dwa bity albo ucinało wcześniej ?
axi
Dla tekstów ze znakami kodowanymi na więcej niż jednym bajcie stosuję się funkcje poprzedzone przedrostkiem mb_ (od multibyte). Lista funkcji
tosiek
a jest coś uniwersalnego ?
wrzasq
po pierwsze to bajta, a nie bita, no to jest jednak troche podstawowych slow.

po drugie - co jest "nieuniwersalnego" w mb_*()?
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.