Перевод русской строки в транслит

Marduk

Новичок
Перевод русской строки в транслит

Поделитесь плиз сабжевой функцией... Искал по форуму - нашёл только перловский вариант. К сожалению перлом не владею... =(
 

Фанат

oncle terrible
Команда форума
Marduk
тебе всего лишь надо создать два массива - русских букв и замены.
Поверь мне, это СОВСЕМ не сложно
 

гоша

Guest
tony2001

Котеров как-то мерял, говорит -- быстрее в 20 раз.
Когда (если) xpoint оживет -- дам ссылку.
 

Фанат

oncle terrible
Команда форума
а ты давай сразу, а кто захочет - пропишет себе
194.67.246.6 xpoint.ru
 

HEm

Сетевой бобер
гоша
Быстрее именно чем strtr?

Для замены одной комбинации наверное а не 32 в цикле?
 

tony2001

TeaM PHPClub
гоша

str_replace:

PHP:
$array1 = Array("h", 'r', 'u');
$array2 = Array('hello', 'are', 'you');

str_replace("qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./", $array1, $array2);
Код:
/usr/local/apache/bin/ab -n 3000 -c 10 http://localhost/index.php
This is ApacheBench, Version 1.3d <$Revision: 1.70 $> apache-1.3
Server Software:        Apache/1.3.29
Server Hostname:        grp-dovgal
Server Port:            80

Document Path:          /index.php
Document Length:        98 bytes

Concurrency Level:      10
Time taken for tests:   8.381 seconds
Complete requests:      3000
Failed requests:        0
Broken pipe errors:     0
Total transferred:      513513 bytes
HTML transferred:       0 bytes
Requests per second:    357.95 [#/sec] (mean)
Time per request:       27.94 [ms] (mean)
Time per request:       2.79 [ms] (mean, across all concurrent requests)
strtr:

PHP:
$array = Array("h"=>'hello', 'r'=>'are', 'u'=>'you');
strtr("qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./qwertyuiopasdfghjkl;zxcvbnm,./",$array);
Код:
Concurrency Level:      10
Time taken for tests:   8.245 seconds
Complete requests:      3000
Failed requests:        0
Broken pipe errors:     0
Total transferred:      513513 bytes
HTML transferred:       0 bytes
Requests per second:    363.86 [#/sec] (mean)
Time per request:       27.48 [ms] (mean)
Time per request:       2.75 [ms] (mean, across all concurrent requests)
Transfer rate:          62.28 [Kbytes/sec] received
1) верьте дальше вашим "тестам".
2) тестируйте дальше функции echo и print, они отнимают у вас "жизненноважные" микросекунды.
3) советуйте дальше всякую ерунду.

-~{}~ 17.02.04 16:25:

угу, щас всё брошу и буду на корпоративном ДНСе прописывать xpoint.ru
 

Marduk

Новичок
ладно! всем спасибо за ответы... сделал вот так:

function rus2trans($str)
{
$rus = array('щ','Щ','ш','Ш','ё','Ё','ж','Ж','ч','Ч','э','Э','ю','Ю','я','Я','а','б','в','г','д','е','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ъ','ы','ь','А','Б','В','Г','Д','Е','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ъ','Ы','Ь');

$trans = array('sch','SCH','sh','SH','yo','YO','zh','ZH','ch','CH','e','E','yu','YU','ya','YA','a','b','v','g','d','e','z','i','j','k','l','m','n','o','p','r','s','t','u','f','h','c',"\"",'y',"'",'A','B','V','G','D','E','Z','I','J','K','L','M','N','O','P','R','S','T','U','F','H','C',"\"",'Y',"\'");

$newstr = str_replace($rus,$trans,$str);
return $newstr;
}

Кстати, поделитесь вашими соображениями чем заменять символы: ь,ы,ъ!
 

гоша

Guest
tony2001

Ваши эмоции неуместны, юноша.

По поводу тестов и их корректности -- обратитесь к автору заметки на xpoint: http://forum.dklab.ru/users/DmitryKoteroff/

Я всего лишь указал на существование такой точки зрения.
 

tony2001

TeaM PHPClub
гоша
что вы, почтенный старец, какие эмоции? окститесь.
больше ничьё мнение цитировать не будете?
у нас на форуме есть масса знатных авторитетов.
правда, большинство их постов - в Корзине, но их мнения очень занятны и их однозначно следует цитировать "за компанию".
 

Фанат

oncle terrible
Команда форума
у администрации форума очередной приступ мизантропии :)
 

гоша

Guest
Имею сказать следующее:

1) сожалею о совершенно бессмысленной полемике, которая тут возникла

2) совершенно не собираясь защищать Дм. Котерова (он в этом не нуждается), хотел бы, на случай если он прочтет этот топик, принести ему извинения за то, что его имя было упомянуто в столь неароматном контексте.

Это всё на сегодня.
 

si

Administrator
2) совершенно не собираясь защищать Дм. Котерова (он в этом не нуждается), хотел бы, на случай если он прочтет этот топик, принести ему извинения за то, что его имя было упомянуто в столь неароматном контексте.
многие высказывания (советы) товарища Котерова на нынешнем витке истории выглядят странными, а иногда вообще бессмысленными, ложными и вредными.
 
Сверху