[ agvozden @ 05.01.2006. 19:23 ] @
Deo za unos teksta je utf-8, takav je i deo za citanje
medjutim, zbog nekih drugih stvari imam potrebu da u bazu budu upisani kodovi (&#xxx) a ne karakteri ć,č.
To se odnosi kako na nasa slova, tako i ostala evropska (spanski, nemacki...)

Jel postoji neka funkcija koja forsira ovakav upis za karaktere preko 127?
Sve sto sam probao do sada ne daje rezultate.
Kada recimo postavim stranicu za unos na iso-8859-1 php zameni dobar deo znakova, ali te i š i đ

recimo:
Code:

   function char_ASCII($input)
   {
      for ($i=0; $i<strlen($input); $i++)
      {
        $test = substr($input, $i, 1);
        $chr = ord($test);
        if ($chr>127)
         $out.= "&#".$chr;
        else
         $out.= $test;
      }
     return $out;
   }

ne daje dobre rezultate


[Ovu poruku je menjao boccio dana 17.01.2006. u 13:21 GMT+1]
[ broker @ 05.01.2006. 22:41 ] @
PHP ima funkciju htmlentitzencode ili tako nesto...
[ agvozden @ 10.01.2006. 19:23 ] @
Nakon dugog lutanja nasao sam resenje
Code:

<?php
function utf8_to_unicode( &$str ) {

    $values = array();
    $lookingFor = 1;

    for ($i = 0; $i < strlen( $str ); $i++ ) {
      $thisValue = ord( $str[ $i ] );
      if ( $thisValue < 128 ) $unicode.= $str[ $i ];  
      else {
        if ( count( $values ) == 0 ) $lookingFor = ( $thisValue < 224 ) ? 2 : 3;
        $values[] = $thisValue;
        if ( count( $values ) == $lookingFor ) {
    $number = ( $lookingFor == 3 ) ?
      ( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):
        ( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );
    $unicode.= "&#".$number.";";
    $values = array();
    $lookingFor = 1;
        }
      }
    }
    return $unicode;
}
?>

E, sad tu moze biti problem brzina, ali ovo radi posao.
Jedino ako neko zna bolje resenje


[Ovu poruku je menjao boccio dana 17.01.2006. u 13:21 GMT+1]