Форум → Программирование → PHP для идиотов → Подскажите аналог strtr для многобайтных кодировок?
Подскажите аналог strtr для многобайтных кодировок?
Страницы: ← Следующая страница →
-
7 июля 2009 г. 21:17, спустя 9 минут 4 секунды
для мультибайта тебе надо юзать простой str_replace, он byte safe так что проблем не будет с юникодом. транслия … хз. просто составь табилцу соответствий да используй ее))Сапожник без сапог -
7 июля 2009 г. 21:20, спустя 3 минуты 2 секунды
phpdude, ну у меня и так "таблица соответствий", только из моих старых исходников, там юзался strtr )) перепишу на str_replace, сенк!https://smappi.org/ - платформа по созданию API на все случаи жизни -
7 июля 2009 г. 21:22, спустя 1 минуту 12 секунд
я сам долго искал mb_replace ока не понял что она нахуй не нужна))))) ведь простой реплейс работает со строкой как с байтами а не как со строкой. это с одной стороны хорошо с другой имхо плохо))
phpdude, ну у меня и так "таблица соответствий", только из моих старых исходников, там юзался strtr )) перепишу на str_replace, сенк!Сапожник без сапог -
7 июля 2009 г. 23:13, спустя 1 час 51 минуту 40 секунд
/**
* 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);
}
}ιιlllιlllι унц-унц -
7 июля 2009 г. 23:19, спустя 5 минут 50 секунд
Я тоже юзал strtr, но он не хера utf8 не поддерживает, где наеб?Спустя 52 сек.и у меня тоже по гостуСпустя 55 сек.<?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;
}
}https://smappi.org/ - платформа по созданию API на все случаи жизни -
7 июля 2009 г. 23:23, спустя 3 минуты 52 секунды
adw0rd, эта функция работает (если сохранишь код в utf8)ιιlllιlllι унц-унц -
7 июля 2009 г. 23:36, спустя 13 минут 1 секунду
странно, моя не работает, хотя и в ютф8https://smappi.org/ - платформа по созданию API на все случаи жизни -
-
7 июля 2009 г. 23:38, спустя 40 секунд
artoodetoo, нет, я просто заюзал str_replace и проблем не знаю с ютф8https://smappi.org/ - платформа по созданию API на все случаи жизни -
8 июля 2009 г. 0:15, спустя 37 минут
и с другими кодировками знать не будешь)
artoodetoo, нет, я просто заюзал str_replace и проблем не знаю с ютф8Спустя 71 сек.тестСапожник без сапог -
8 июля 2009 г. 0:27, спустя 11 минут 5 секунд
так я не понял. всё работает — в чём проблема то? :)ιιlllιlllι унц-унц -
8 июля 2009 г. 0:28, спустя 1 минуту 10 секунд
artoodetoo, что работает? Я решил свою проблему (см. первый пост) с помощью str_replace, всё, тему можно закрытьhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
8 июля 2009 г. 0:32, спустя 4 минуты 5 секунд
mb_strtr нету :(Спустя 568 сек.или подскажите либу для транслитерации кириллицы, плизз
mb_strtr нету и хуй с ней. strtr справляется — см. мою функцию, она работает! :)
если сохраняешь код в 1251 - работает в 1251, сохранишь в utf-8 будет транслитить utf-8
strtr() без выебонов
то есть тему можно было не открывать, imhoιιlllιlllι унц-унц -
8 июля 2009 г. 0:33, спустя 1 минуту 11 секунд
mb_strtr нету и хуй с ней. strtr справляется — см. мою функцию, она работает! :)
если сохраняешь код в 1251 - работает в 1251, сохранишь в utf-8 будет транслитить utf-8
strtr() без выебонов
то есть тему можно было не открывать, imho
еще раз повторяю, я ЮЗАЛ strtr, файл в utf8 - НИХУЯ НЕ РАБОТАЕТ!!! Поэтому и создал тему!https://smappi.org/ - платформа по созданию API на все случаи жизни
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!