- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
function str_from_translit($st)
{
$trans = array(
"a" => "а",
"b" => "б",
"v" => "в",
"g" => "г",
"d" => "д",
"e" => "е",
"j" => "ж",
"z" => "з",
"i" => "и",
"k" => "к",
"l" => "л",
"m" => "м",
"n" => "н",
"o" => "о",
"p" => "п",
"r" => "р",
"s" => "с",
"t" => "т",
"y" => "у",
"f" => "ф",
"h" => "х",
"c" => "ц",
"ch" => "ч",
"sh" => "ш",
"sh" => "щ",
"A" => "А",
"B" => "Б",
"V" => "В",
"G" => "Г",
"D" => "Д",
"E" => "Е",
"J" => "Ж",
"Z" => "З",
"I" => "И",
"K" => "К",
"L" => "Л",
"M" => "М",
"N" => "Н",
"O" => "О",
"P" => "П",
"R" => "Р",
"S" => "С",
"T" => "Т",
"Y" => "У",
"F" => "Ф",
"H" => "Х",
"C" => "Ц",
);
return strtr($st, $trans);
}
Lure Of Chaos 27.08.2011 16:23 # +2
разве что я бы вынес данные из кода
3.14159265 27.08.2011 16:38 # +1
Минусну.
inkanus-gray 27.08.2011 17:03 # 0
Спойлер: (После того, как "c" поменяется на "ц", пара "ch" -> "ч" будет проигнорирована, и "ch" превратится в "цх".)
3.14159265 27.08.2011 17:08 # +3
"s" => "с",
"sh" => "ш",
"sh" => "щ",
inkanus-gray 27.08.2011 19:26 # +1
gegMOPO4 27.08.2011 17:17 # 0
jokz 27.08.2011 19:13 # +3
inkanus-gray 27.08.2011 19:20 # +1
3.14159265 27.08.2011 19:44 # +3
Ах да, извините, я забыл, что пехепешники не знают о циклах. В таком случае говна там нет.
inkanus-gray 27.08.2011 20:11 # +5
Lure Of Chaos 27.08.2011 23:19 # 0
substr 27.08.2011 22:41 # 0
inkanus-gray 27.08.2011 22:57 # 0
Это не говно?
substr 27.08.2011 23:09 # +1
Lure Of Chaos 27.08.2011 23:14 # +1
jQuery 28.08.2011 02:51 # 0
хм..
Nemoden 28.08.2011 09:02 # +5
Ну как же не говно, когда
da4ever 28.08.2011 11:25 # +6
Int 28.08.2011 10:53 # +2
7ion 28.08.2011 11:15 # 0
На этом все. В остальном - это круто.
Я до сего момента делал два массива и гнал str_ireplace.
Но! strtr регистрозависима.
Так что можно сделать один массив с лоукейсом, а потом return str_ireplace(array_keys($trans), $trans, $st);
Хотя затрудняюсь сказать, что быстрее отработает на хайлоад-проектах - два массива или один с array_keys.
RaZeR 28.08.2011 19:48 # 0