Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak obliczać długość tekstu z polskimi znakami ?, mb_strlen zle dziala, zawyza wartosci
Octobus
post
Post #1





Grupa: Zarejestrowani
Postów: 259
Pomógł: 1
Dołączył: 3.07.2011

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


Witam. Mam taki problem bo potrzebuje policzyć długość tekstu z pl znakami. Przykładowy tekst:
Kod
Mając do czynienia z systemem Windows Vista



dlugosc tekstu: 43
strlen daje: 44
mb_strlen daje: 44

z tego co czytalem w manualu mb_strlen powinien liczyc znaki a nie bity wiec to ą zawyza wartosc.
(IMG:style_emoticons/default/sciana.gif)

Edit: Ok przepraszam za kłopot, nie doczytalem
mb_strlen($string,'UTF-8')
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Bardzo nieeleganckie rozwiązanie, ale zadziała:
  1. function strlen_pl($txt)
  2. {
  3. $pls = array('ą', 'ć', 'ę', 'ł', 'ń', 'ó', 'ś', 'ź', 'ż', 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ź', 'Ż');
  4. $substractPl = 0;
  5. foreach($pls as $pl)
  6. {
  7. $substractPl += substr_count($txt, $pl);
  8. }
  9. return strlen($txt) - $substractPl;
  10. }
  11. $txt = 'Zażółć gęślą jaźń';
  12. echo strlen_pl($txt);
Go to the top of the page
+Quote Post

Posty w temacie


Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 18:54