Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: convert to latin

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
VestCoastman
Отправлено: 27 Сентября, 2013 - 14:38:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




UPD:
Ищу аналог функции transliterator_transliterate() на чистом php (Без PECL)

Посоветуйте класс для конвертирования символов в латиницу.

Например:
Cześć => Czesc
Привет => Privet
Ћао => chao

(Отредактировано автором: 27 Сентября, 2013 - 16:35:27)

 
 Top
EuGen Администратор
Отправлено: 27 Сентября, 2013 - 14:41:53
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




VestCoastman
Transliterator


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
LIME
Отправлено: 27 Сентября, 2013 - 14:46:19
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




или не заморачиваться с установкой PECL расширения
Спойлер (Отобразить)

(Добавление)
после поправки ТС не актуально
 
 Top
VestCoastman
Отправлено: 27 Сентября, 2013 - 14:48:38
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




EuGen, а без PECL есть?

P.S. Будет использоваться как преобразование в чпу url

(Отредактировано автором: 27 Сентября, 2013 - 14:50:44)

 
 Top
EuGen Администратор
Отправлено: 27 Сентября, 2013 - 14:59:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




VestCoastman
iconv + //TRANSLIT
?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
VestCoastman
Отправлено: 27 Сентября, 2013 - 15:10:56
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




EuGen пишет:
VestCoastman
iconv + //TRANSLIT
?

Так iconv вроде не работает с кириллицей и еще какими-то кодировками
 
 Top
esterio
Отправлено: 27 Сентября, 2013 - 15:14:15
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




-

(Отредактировано автором: 28 Сентября, 2013 - 00:10:34)

 
 Top
VestCoastman
Отправлено: 27 Сентября, 2013 - 15:34:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




esterio, а разве iconv сможет преобразовать разные языки?
Например:
PHP:
скопировать код в буфер обмена
  1. $string = 'Cześć, Привет, 你好, Hello';
  2. echo mytranslate($string); // Return "Czesc, Privet, Ni hao, Hello"


Блин, тут символы преобразуются в сущности :/

(Добавление)
Есть еще идеи?
transliterator_transliterate() - отличная штука, но работает только с PECL'ом.
Есть ли аналог данной штуки на чистом php?

(Отредактировано автором: 27 Сентября, 2013 - 15:35:38)

 
 Top
LIME
Отправлено: 27 Сентября, 2013 - 16:19:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




дык поставь и все
1 строка в терминале....скорее всего...если зависимости не потребует
 
 Top
VestCoastman
Отправлено: 27 Сентября, 2013 - 16:22:07
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




LIME пишет:
дык поставь и все
1 строка в терминале....скорее всего...если зависимости не потребует

На моей машинке то стоит, но я же велик пишу для паблика. Например на хостингере уже проверил - не работает, а на fozzy работает.

(Отредактировано автором: 27 Сентября, 2013 - 16:22:29)

 
 Top
LIME
Отправлено: 27 Сентября, 2013 - 16:27:43
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




даа...бедаа
совсем забываю что есть хостинги на свете))
тады арендуй сервак и хости сам
 
 Top
VestCoastman
Отправлено: 27 Сентября, 2013 - 16:33:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




LIME пишет:
даа...бедаа
совсем забываю что есть хостинги на свете))
тады арендуй сервак и хости сам

Пахнет дешевым порно =)))
 
 Top
VestCoastman
Отправлено: 27 Сентября, 2013 - 18:44:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 374
Дата рег-ции: Дек. 2010  


Помог: 3 раз(а)




По ходу аналога не существует. Сделал так, мб кому пригодится.
Иероглифы, конечно не изменит, но если строка пуста, то будет сгенерирована рандомная.
PHP:
скопировать код в буфер обмена
  1.  
  2. class convert {
  3.         public function convertToLatin($str){
  4.                 $str = mb_strtolower($str, 'UTF-8');
  5.                
  6.                 $tr = array(
  7.                         'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g',
  8.                         'д' => 'd', 'е' => 'e', 'ё' => 'yo', 'ж' => 'zh',
  9.                         'з' => 'z', 'и' => 'i', 'й' => 'y', 'к' => 'k',
  10.                         'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o',
  11.                         'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't',
  12.                         'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c',
  13.                         'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sh', 'ы' => 'i',
  14.                         'э' => 'e', 'ю' => 'yu', 'я' => 'ya'
  15.                 );
  16.  
  17.                 $str = strtr($str, $tr);
  18.                 $str = preg_replace('/[^\\pL0-9_]+/u', '-', $str);
  19.                 $str = trim($str, "-");
  20.                 $str = iconv("utf-8", "us-ascii//TRANSLIT", $str);
  21.                 $str = preg_replace('/[^-a-z0-9_]+/', '', $str);
  22.  
  23.                 if(empty($str)){ $str = self::passgen(10);}
  24.                 return $str;
  25.         }
  26.  
  27.         private static function passgen($length=6) {
  28.                 $chars = "abcdefghijklmnopqrstuvwxyz";
  29.  
  30.                 $string = "";
  31.  
  32.                 $len = strlen($chars) - 1;  
  33.                 while (strlen($string) < $length){
  34.                         $string .= $chars[mt_rand(0,$len)];  
  35.                 }
  36.  
  37.                 return $string;
  38.         }
  39. }
  40.  
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB