član
Na probnom radu
Datum učlanjenja: 28.01.2008
Poruke: 30
Hvala: 10
0 "Hvala" u 0 poruka
|
Citat:
Originalno napisao ivanhoe
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??
|