Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kolorowanie tekstu a polskie znaki (UTF-8)
Forum PHP.pl > Forum > PHP
leon1313
Witam;
W jaki sposób pokolorować tekst (każda literę osobno) dla polskich znaków kodowanych w UTF-8?
Kod
<?php

function koloruj($my_string){
     $how_big=strlen($my_string);
     for($c_iter=0; $c_iter<$how_big; ++$c_iter){
         $r_col=rand(0,255);    
         $g_col=rand(0,255);    
         $b_col=rand(0,255);    
         echo ('<span style="color:rgb('.$r_col.','.$g_col.','.$b_col.');">'.$my_string[$c_iter]. '</span>');
     }
}

koloruj('alaążśźćę');
?>

nie za bardzo działa...
Spawnm
a dla nie polskich działa ?
jakieś error?
thomas2411
  1. <?php
  2. function koloruj($my_array){
  3.  
  4.     foreach($my_array as $str){
  5.         $r_col=rand(0,255);    
  6.         $g_col=rand(0,255);    
  7.         $b_col=rand(0,255);    
  8.         echo ('<span style="color:rgb('.$r_col.','.$g_col.','.$b_col.');">'.$str. '</span>');
  9.     }
  10. }
  11.  
  12. koloruj(array('ą', 'ź'));
  13. ?>


Wrzuć to do tabeli i tak przekaż. Poza tym upewnij się że plik jaki i kod strony ma ustawione kodowanie na utf-8
viking
Cytat(leon1313 @ 17.06.2009, 13:09:04 ) *
Kod
     $how_big=[b]strlen[/b]($my_string);


mb_strlen()
thomas2411
Cytat(viking @ 17.06.2009, 13:20:47 ) *
mb_strlen()

strlen dawało dobrą długość, także jakieś znaki były kolorowane, tyle, że znaki polski były niepoprawnie wyświetlane.
mls
  1. <?php
  2. function koloruj ($my_string)
  3. {
  4.    for ($i = 0; $i < mb_strlen($my_string, 'utf-8'); $i ++)
  5.    {
  6.        $r_col = rand(0, 255);
  7.        $g_col = rand(0, 255);
  8.        $b_col = rand(0, 255);
  9.        echo('<span style="color: rgb(' . $r_col . ', ' . $g_col . ', ' . $b_col . ')">' . mb_substr($my_string, $i, 1, 'utf-8') . '</span>');
  10.    }
  11. }
  12.  
  13. koloruj('alaążśźćę');
  14. ?>
leon1313
Podziękowania dla wszystkich, szczególnie dla mls.
Działa, jeszcze tylko muszę dorobić wyłączenie parsowania tego, co jest w znacznikach <>, </> i bedzie git :-)
viking
Cytat(thomas2411 @ 17.06.2009, 13:26:41 ) *
strlen dawało dobrą długość, także jakieś znaki były kolorowane, tyle, że znaki polski były niepoprawnie wyświetlane.

Jeśli rzeczywiście to był unikod nie miało prawa dawać dobrej długości (2 zamiast 1).
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.