Užitečné funkce pro PHP - díl 4.
Dnes jsem řešil takový zábavný problém, automatický převod cyriliky na latinku,
kvůli SEO URL, tedy aby to místo
Советский Союз
zcela automaticky vytvořilo sovetskij-sojuz
.
Fonetický přepis do latinky. A vyšla mi z toho tato funkce pro PHP, doufám, že se bude hodit i
ostatním:
$global_utf= explode(',', "КВ,кв,КС,кс,А,а,Б,б,Ц,ц,Д,д,Э,Е,е,Ф,ф,Г,г,Х,х,". "И,и,Й,й,К,к,Л,л,М,м,Н,н,О,о,П,п,Р,р,С,с,". "Т,т,У,у,В,в,В,в,Ы,ы,З,з,Ч,ч,Ш,ш,Щ,щ,Ж,ж,". "я,ь,ю,Ю"); $global_asc= explode(',', "Q,q,X,x,A,a,B,b,C,c,D,d,E,E,e,F,f,G,g,H,". "h,I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,R,r,S,". "s,T,t,U,u,V,v,W,w,Y,y,Z,z,Ch,ch,Sh,sh,Sht,". "sht,Zh,zh,ja"); function utf2ascii($title){ global $global_utf,$global_asc; $i=0; foreach ($global_utf as $s) $title= str_replace(trim($s),trim($global_asc[$i++]),$title); return $title; }
Teď by bylo ještě zajímavé vyřešit takový fonetický přepis japonštiny, korejštiny a čínštiny :-)
A slovenčina? :-) Zo slovenčiny tam chýba ešte ŕ a ô.
Vypada zajimave, je to urcite kompletni foneticky prepis? Nechce se mi nad tim moc premyslet... A je to foneticky prepis na cestinu nebo anglictinu? Prijde mi to jako takovy mix.
Jinak ten tvuj "zert" by se mozna dal zrealizovat - cinstina se da prevest na pinyin, popripade nejako vyuzit tohoto: http://zhongwen.com/x/faq4.htm...
Japonska katakana a hiragana by se taky snad daly nejak prevest.
[2] kontrolovala to jedna ruska, a řekla, že to je ok.. ;) podívej se třeba sem a porovnej si automaticky generované URL kategorie a název..
Dobry den, neumim prpgramovat ani pouzit tuhle fukci ktera by se mi hodila
slo by nejak popsat jak se to pouziva nebo z toho udealt programek aby to prevadelo ?
[4] pokud někdo neumí programovat, tak je mu tato funkce k ničemu ;) A kdo umí, tomu to ušetří kus práce a shánění rusky mluvících občanů ;)
Jen bych dodal, že komu je tahle funkce na nic a potřebuje jen její funkčnost občas využít (viz [4]), tak doporučuju http://www.2cyr.com/. Letos v létě jsem to hojně využíval v práci :-).
[3] Jo, tak je to nejaky anglicky prepis. Ale zarazi me tam prave nektere "j" misto anglickych "y"... Ale fungovat to funguje, pokud je to z rukeho hlediska v poradku, neni co resit.
Z ruskyho hlediska v pohode. ;) A ted to mas od dvou rusu rADo. ;) :D Jinak pekna vecicka, dik. ;) To se mi bude urcite hodit a aspon se s tim nemusim patlat.
Opacny smer se da najit tady :D
http://sweb.cz/zantovsky/transkriptor/...
javascriptova kravinka...
já jsem nedávnou použil http://home.tiscali.cz/ca275164//ruzne/azbuka.htm... tak dobrý
Dovolím si poděkovat za užitečnou funkci a upozornit na možnou chybu? Zaprvý je to trošku vůči sobě posunutý (což asi dle řádkového dělení nebyl záměr?) - "české h" by mělo být na prvním řádku, "české s" na druhém řádku a "sht,Zh,zh" na konci řádku třetího.
Na posledním řádku tím pádem chybí tři poslední znaky; první chybějící je prý "tvrdý znak" (ten se nepřekládá) a poslední dva se podle ruštináře překládají jako "ju".
Ale možná se mýlím.
Děkuju, je to fajn funkce. Takhle by měla být snad už kompletní..
$global_utf=
explode(',',
"КВ,кв,КС,кс,А,а,Б,б,Ц,ц,Д,д,Э,э,Е,е,Ф,ф,Г,г,Х,х,".
"И,и,Й,й,К,к,Л,л,М,м,Н,н,О,о,П,п,Р,р,С,с,".
"Т,т,У,у,В,в,В,в,Ы,ы,З,з,Ч,ч,Ш,ш,Щ,щ,Ж,ж,".
"Я,я,Ю,ю,ъ,ь");
$global_asc=
explode(',',
"Q,q,X,x,A,a,B,b,C,c,D,d,E,e,E,e,F,f,G,g,H,h,".
"I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,R,r,S,s,".
"T,t,U,u,V,v,W,w,Y,y,Z,z,Ch,ch,Sh,sh,Sht,sht,Zh,zh,".
"Ja,ja,Ju,ju");