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

Форум Регулярные Выражения

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Транслитизация
 
 автор: Unkind™   (25.08.2006 в 02:39)   письмо автору
 
 

Когда пользователь транслитирует текст (из "slovo" в "слово"), то выходит, что кусок текста со смайлом тоже транлитируется...Нельзя с помощью регулярных выражений часть текста не транслитировать?
Например те слова, то на латинском маленькими буквами и с обоих сторон точки, т.е. например
.smile.

   
 
 автор: Unkind™   (25.08.2006 в 10:09)   письмо автору
 
   для: Unkind™   (25.08.2006 в 02:39)
 

Или хотя бы, чтобы, транслитировались только слова вида .смайл.

   
 
 автор: ec_stasis   (25.08.2006 в 10:27)   письмо автору
 
   для: Unkind™   (25.08.2006 в 10:09)
 

Че-то я ничего не понял...

   
 
 автор: cheops   (25.08.2006 в 11:44)   письмо автору
 
   для: Unkind™   (25.08.2006 в 02:39)
 

Приведите код, которым вы производите преобразование и какой формат имеют смайлики?

   
 
 автор: Unkind™   (25.08.2006 в 12:03)   письмо автору
 
   для: cheops   (25.08.2006 в 11:44)
 


<?php
//Транслитизация
$msg = stripslashes($msg);

    if(
$_POST['translit'] == "true")
    {
    
$msg = str_replace("\"\"", "Ъ", $msg);
    
$msg = str_replace("\"", "ъ", $msg);
    
$msg = str_replace("''", "Ь", $msg);
    
$msg = str_replace("'", "ь", $msg);

    
$lat = array("CH", "ch", "SC", "sc", "YE", "ye", "YU", "yu", "YA", "ya", "YO", "yo");
    
$rus = array("Ч", "ч", "Щ", "щ", "Э", "э", "Ю", "ю", "Я", "я", "Ё", "ё");
    
$msg = str_replace($lat, $rus, $msg);

    
$lat = array("A", "a", "B", "b", "C",
 
"c", "D", "d", "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", "H", "h", "Z", 
"z", "W", "w", "X", "x", "Y", "y");
    
$rus = array("А", "а", "Б", "б", "Ц", 
"ц", "Д", "д", "Е", "е", "Ф", "ф", "Г", 
"г", "Х", "х", "И", "и", "Ж", "ж", "К", 
"к", "Л", "л", "М", "м", "Н", "н", "О", 
"о", "П", "п", "Р", "р", "С", "с", "Т", 
"т", "У", "у", "В", "в", "Х", "х", "З", 
"з", "Ш", "ш", "Ы", "ы", "Й", "й");
    
$msg = str_replace($lat, $rus, $msg);
    }

$msg = htmlspecialchars($msg);

//Массив текстов для вызова смайла
$smiles_array = array("'\.smile\.'", "'\.smile2\.'");
//Массив смайлов
$smile = array("<img src=\"smiles/001.gif\" alt=\"smile\"/>", "<img src=\"smiles/002.gif\" alt=\"smile2\"/>");

//Добавление смайлов
$msg = preg_replace($smiles_array, $smile, $msg, 2);
?>


То есть если транлист включен, то вот смайлы не получается сделать.

   
Rambler's Top100
вверх

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