Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как лучше сделать транслит?

Сообщения:  [1-10] 

 
 автор: bronenos   (24.01.2007 в 16:50)   письмо автору
 
   для: bronenos   (24.01.2007 в 16:41)
 

Короче вот что должно получиться
Возможно что то пропустил
Доделаете сами

function translate ($text) {
 $text = strtr ($text, 'абвгдзиклмнопрстуфхцыэ', 'abvgdziklmnoprstufhcye');
 $text = strtr ($text, array ('е' => 'ye', 'ё' => 'yo', 'ж' => 'zh', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch', 'ю' => 'yu', 'я' => 'ya'));
 return $text;
}

print translate ('транслит');

   
 
 автор: bronenos   (24.01.2007 в 16:41)   письмо автору
 
   для: Specter   (24.01.2007 в 14:09)
 

Эй подожди! Вот дополнение к тому

$text = strtr ($text, array ('я' => 'ya', 'ю' => 'yu'));

Надо использовать функцию два раза для этой цели

   
 
 автор: Бамси   (24.01.2007 в 15:15)   письмо автору
 
   для: Maxam   (24.01.2007 в 14:54)
 

Да будет, у меня так сделано, только $sma2 постарайтесь первыми поставить такие буквы как sh, ch,....

   
 
 автор: Maxam   (24.01.2007 в 14:54)   письмо автору
 
   для: Specter   (24.01.2007 в 14:09)
 

А это будет работать???

$sm1 = array("a","b","v","g,"d","e","yo","zh","z","i","j","k","l","m","n","o","p","r","s","t","u","f","h","ts","ch","sh","sch"," " ","y"," ' ","ye","yu","ya","_");
$sm2= array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я"," ");
$autor=str_replace($sm1,$sm2,$autorname);

   
 
 автор: Specter   (24.01.2007 в 14:09)   письмо автору
 
   для: bronenos   (24.01.2007 в 13:53)
 

Не работает этот способ. :(

   
 
 автор: Specter   (24.01.2007 в 14:04)   письмо автору
 
   для: bronenos   (24.01.2007 в 13:53)
 

А как букву 'я' заменить на 'ya' ?

   
 
 автор: bronenos   (24.01.2007 в 13:53)   письмо автору
 
   для: Specter   (24.01.2007 в 13:31)
 

Можно
но следите за буквами
3 буква из второго параметра заменится на 3 из третьего и так далее.

   
 
 автор: Specter   (24.01.2007 в 13:31)   письмо автору
 
   для: bronenos   (24.01.2007 в 13:26)
 

А можно сделать так?

<?php
function translate($text) {
$text strtr($text'абвг...''abvgd...'); 
return 
$text
 } 
echo 
translate('привет'); 
?> 

   
 
 автор: bronenos   (24.01.2007 в 13:26)   письмо автору
 
   для: Specter   (24.01.2007 в 13:13)
 

$trans = strtr ($text, 'абвгд...', 'abvgd...');

   
 
 автор: Specter   (24.01.2007 в 13:13)   письмо автору
 
 

Так

<?php
$translate 
= array('a'=>'a''b'=>'б''v'=>'в'и т.д.);
?> 

или так

<?php
$translate
=str_replace('b''б'$translate); 
?> 

какой способ будет работать быстрее?

   

Сообщения:  [1-10] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования