Pogledajte određenu poruku
Staro 26. 02. 2008.   #10
nEdImT
član
Na probnom radu
 
Datum učlanjenja: 28.01.2008
Poruke: 30
Hvala: 10
0 "Hvala" u 0 poruka
nEdImT is on a distinguished road
Default

Citat:
Originalno napisao ivanhoe Pogledajte poruku
replace je alias za str_replace, a ta funkcija ne zna da radi sa utf8... evo ti moja php funkcija koja radi to:
PHP kôd:
/**
 * Nasa slova sa akcentima (č,ć,š,đ,ž) prebacuje u ascii ekvivalente (c,c,s,dj,z)
 * @autor Ivan Dilber (bazirano na istoimenoj Wordpress f-ji)
 * @param string $string UTF8 tekst sa nasim slovima
 * @return string tekst gde su sva nasa slova zamenjena ascii ekvivalentima
 */
function remove_accents($string) {
    
$chars = array(
        
chr(196).chr(134) => 'C'chr(196).chr(135) => 'c',    // ovo je za ć
        
chr(196).chr(140) => 'C'chr(196).chr(141) => 'c',    // ovo je za č
        
chr(196).chr(144) => 'Dj'chr(196).chr(145) => 'dj',    // ovo je za đ
        
chr(197).chr(160) => 'S'chr(197).chr(161) => 's',    // ovo je za š
        
chr(197).chr(189) => 'Z'chr(197).chr(190) => 'z',    // ovo je za ž
    
);

    return 
strtr($string$chars);

Od ovoga mozes lako da napravis smarty filter, ali mnogo je logicnije (i efikasnije) da se tekst cisti u php-u, a ne u templejtu.
EDIT: Ako hoces drugaciju transliteraciju (npr. č -> ch) samo zameni u funkciji vrednost za dati key u $chars nizu
Ovako:

Odem prvo u Dreamweaveru CTRL+J i stavim UTF-8, zatim snimim nesto.php:


PHP kôd:
 <?php

/**
 * Nasa slova sa akcentima (č,ć,š,đ,ž) prebacuje u ascii ekvivalente (c,c,s,dj,z)
 * @autor Ivan Dilber (bazirano na istoimenoj Wordpress f-ji)
 * @param string $string UTF8 tekst sa nasim slovima
 * @return string tekst gde su sva nasa slova zamenjena ascii ekvivalentima
 */
 
function remove_accents($string) {
    
$chars = array(
        
chr(196).chr(134) => 'č'chr(196).chr(135) => 'c',    
        
chr(196).chr(140) => 'ć'chr(196).chr(141) => 'c',    
        
chr(196).chr(144) => 'đ'chr(196).chr(145) => 'dj',    
        
chr(197).chr(160) => 'ž'chr(197).chr(161) => 'z',    
        
chr(197).chr(189) => 'š'chr(197).chr(190) => 's',    
    );


    return 
strtr($string$chars);
        
}  



?>
Odem $string = "č"; echo $string; i ne prebaci, kako bih to rješio??
nEdImT je offline   Odgovorite uz citat