Пуля — дура. Пых — молодец.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 26 Май, 2012, 01:54:23

Страниц: [1] 2 3
Печать
Автор Тема: Подскажите аналог strtr для многобайтных кодировок?  (Прочитано 1690 раз)
0 Пользователей и 1 Гость смотрят эту тему.
adw0rd    ↓ 
07 Июль, 2009, 09:08:44
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

mb_strtr нету :(
Спустя 9 минут 28 секунд добавил
или подскажите либу для транслитерации кириллицы, плизз
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
07 Июль, 2009, 09:17:48 , спустя 9 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: д-о-х-у-я!
Сила слова: 1.66

для мультибайта тебе надо юзать простой str_replace, он byte safe так что проблем не будет с юникодом. транслия ... хз. просто составь табилцу соответствий да используй ее))
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
adw0rd    ↓ 
07 Июль, 2009, 09:20:50 , спустя 3 минуты 2 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

phpdude, ну у меня и так "таблица соответствий", только из моих старых исходников, там юзался strtr )) перепишу на str_replace, сенк!
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
07 Июль, 2009, 09:22:02 , спустя 1 минуту 12 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20793
Сила слова: 1.66


phpdude, ну у меня и так "таблица соответствий", только из моих старых исходников, там юзался strtr )) перепишу на str_replace, сенк!
я сам долго искал mb_replace ока не понял что она нахуй не нужна))))) ведь простой реплейс работает со строкой как с байтами а не как со строкой. это с одной стороны хорошо с другой имхо плохо))
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
artoodetoo    ↓ 
07 Июль, 2009, 11:13:42 , спустя 1 час 51 минуту 40 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

PHP

/**
 * Translate russian UTF-8 characters to ASCII
 *
 * Adopted from WordPress plugin rus-to-lat.
 * URI: http://skorobogatov.ru/
 */

function translit($title, $rtl_standard = 'gost')
{
    static $gost, $iso;
 
    switch ($rtl_standard)
    {
      case 'off':
        return $title;
 
      case 'gost':
        if (empty($gost))
        {
            $gost = array(
                'Є'=>'EH','І'=>'I','і'=>'i','№'=>'#','є'=>'eh',
                'А'=>'A','Б'=>'B','В'=>'V','Г'=>'G','Д'=>'D',
                'Е'=>'E','Ё'=>'JO','Ж'=>'ZH',
                'З'=>'Z','И'=>'I','Й'=>'JJ','К'=>'K','Л'=>'L',
                'М'=>'M','Н'=>'N','О'=>'O','П'=>'P','Р'=>'R',
                'С'=>'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'KH',
                'Ц'=>'C','Ч'=>'CH','Ш'=>'SH','Щ'=>'SHH','Ъ'=>'\'',
                'Ы'=>'Y','Ь'=>'','Э'=>'EH','Ю'=>'YU','Я'=>'YA',
                'а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d',
                'е'=>'e','ё'=>'jo','ж'=>'zh',
                'з'=>'z','и'=>'i','й'=>'jj','к'=>'k','л'=>'l',
                'м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r',
                'с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'kh',
                'ц'=>'c','ч'=>'ch','ш'=>'sh','щ'=>'shh','ъ'=>'',
                'ы'=>'y','ь'=>'','э'=>'eh','ю'=>'yu','я'=>'ya',
                '«'=>'"','»'=>'"','„'=>'"','“'=>'"','—'=>'-');
        }
        return strtr($title, $gost);
 
      default:
        if (empty($iso))
        {
            $iso = array(
                'Є'=>'YE','І'=>'I','Ѓ'=>'G','і'=>'i','№'=>'#','є'=>'ye','ѓ'=>'g',
                'А'=>'A','Б'=>'B','В'=>'V','Г'=>'G','Д'=>'D',
                'Е'=>'E','Ё'=>'YO','Ж'=>'ZH',
                'З'=>'Z','И'=>'I','Й'=>'J','К'=>'K','Л'=>'L',
                'М'=>'M','Н'=>'N','О'=>'O','П'=>'P','Р'=>'R',
                'С'=>'S','Т'=>'T','У'=>'U','Ф'=>'F','Х'=>'X',
                'Ц'=>'C','Ч'=>'CH','Ш'=>'SH','Щ'=>'SHH','Ъ'=>'\'',
                'Ы'=>'Y','Ь'=>'','Э'=>'E','Ю'=>'YU','Я'=>'YA',
                'а'=>'a','б'=>'b','в'=>'v','г'=>'g','д'=>'d',
                'е'=>'e','ё'=>'yo','ж'=>'zh',
                'з'=>'z','и'=>'i','й'=>'j','к'=>'k','л'=>'l',
                'м'=>'m','н'=>'n','о'=>'o','п'=>'p','р'=>'r',
                'с'=>'s','т'=>'t','у'=>'u','ф'=>'f','х'=>'x',
                'ц'=>'c','ч'=>'ch','ш'=>'sh','щ'=>'shh','ъ'=>'',
                'ы'=>'y','ь'=>'','э'=>'e','ю'=>'yu','я'=>'ya',
                '«'=>'"','»'=>'"','„'=>'"','“'=>'"','—'=>'-'
            );
        }
        return strtr($title, $iso);
    }
}
 
Записан
adw0rd    ↓ 
07 Июль, 2009, 11:19:32 , спустя 5 минут 50 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

Я тоже юзал strtr, но он не хера utf8 не поддерживает, где наеб?
Спустя 52 секунды добавил
и у меня тоже по госту
Спустя 55 секунд добавил
PHP
<?php
 
class cyr2translate
{
    public static function encode($str)
    {
       
        $str = str_replace(
            array(" "),
            array("_"),
            $str
        );
       
        $str = str_replace(
            array("а", "б", "в", "г", "д", "е", "з", "и", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "ц", "ъ", "ы", "ь"),
            array("a", "b", "v", "g", "d", "e", "z", "i", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "с", "", "y", ""),
            $str
        );
               
        $str = str_replace(
            array("А", "Б", "В", "Г", "Д", "Е", "З", "И", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Ц", "Ъ", "Ы", "Ь"),
            array("A", "B", "V", "G", "D", "E", "Z", "I", "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "С", "", "Y", ""),
            $str
        );
       
        $str = str_replace(
            array("э", "х", "й", "ё", "ж", "ч", "ш", "щ", "ю", "я", "Э", "Х", "Й", "Ё", "Ж", "Ч", "Ш", "Щ", "Ю", "Я"),
            array("eh", "kh", "jj", "jo", "zh", "ch", "sh", "shh", "ju", "ja", "EH", "KH", "JJ", "JO", "ZH", "CH", "SH", "SHH", "JU", "JA"),
            $str
        );
   
        return $str;
    }
   
}
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
artoodetoo    ↓ 
07 Июль, 2009, 11:23:24 , спустя 3 минуты 52 секунды
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

adw0rd, эта функция работает (если сохранишь код в utf8)
Записан
adw0rd    ↓ 
07 Июль, 2009, 11:36:25 , спустя 13 минут 1 секунду
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

странно, моя не работает, хотя и в ютф8
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
artoodetoo    ↓ 
07 Июль, 2009, 11:38:16 , спустя 1 минуту 51 секунду
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

strtr vs. str_replace ?
Записан
adw0rd    ↓ 
07 Июль, 2009, 11:38:56 , спустя 40 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

artoodetoo, нет, я просто заюзал str_replace и проблем не знаю с ютф8
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
phpdude    ↓ 
08 Июль, 2009, 12:15:56 , спустя 37 минут
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20793
Сила слова: 1.66


artoodetoo, нет, я просто заюзал str_replace и проблем не знаю с ютф8
и с другими кодировками знать не будешь)
Спустя 1 минуту 11 секунд добавил
тест
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
artoodetoo    ↓ 
08 Июль, 2009, 12:27:01 , спустя 11 минут 5 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

так я не понял. всё работает — в чём проблема то? :)
Записан
adw0rd    ↓ 
08 Июль, 2009, 12:28:11 , спустя 1 минуту 10 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

artoodetoo, что работает? Я решил свою проблему (см. первый пост) с помощью str_replace, всё, тему можно закрыть
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
artoodetoo    ↓ 
08 Июль, 2009, 12:32:16 , спустя 4 минуты 5 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26


mb_strtr нету :(
Спустя 9 минут 28 секунд добавил
или подскажите либу для транслитерации кириллицы, плизз
mb_strtr нету и хуй с ней. strtr справляется — см. мою функцию, она работает! :)
если сохраняешь код в 1251 - работает в 1251, сохранишь в utf-8 будет транслитить utf-8
strtr() без выебонов
 
то есть тему можно было не открывать, imho
« Последнее редактирование: 08 Июль, 2009, 12:32:16 от artoodetoo » Записан
adw0rd    ↓ 
08 Июль, 2009, 12:33:27 , спустя 1 минуту 11 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17634
Сила слова: 1.67

mb_strtr нету и хуй с ней. strtr справляется — см. мою функцию, она работает! :)
если сохраняешь код в 1251 - работает в 1251, сохранишь в utf-8 будет транслитить utf-8
strtr() без выебонов
 
то есть тему можно было не открывать, imho

еще раз повторяю, я ЮЗАЛ strtr, файл в utf8 - НИХУЯ НЕ РАБОТАЕТ!!! Поэтому и создал тему!
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
Страниц: [1] 2 3
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Sinkler