Транслитерация PHP

os.system в порядке, но отчасти датированный. Это также не очень безопасно. Вместо этого попробуйте subprocess. subprocess не называет sh непосредственно и поэтому более безопасен, чем os.system.

Получают больше информации здесь .

18
задан 16 August 2009 в 15:28
поделиться

3 ответа

Вы можете использовать iconv , который имеет специальную кодировку транслитерации.

Когда строка «// TRANSLIT» добавляется к tocode, транслитерация активируется. Это означает, что когда символ не может быть представлен в целевом наборе символов, он может быть аппроксимирован одним или несколькими символами, которые похожи на исходный символ.

- http://www.gnu.org/ software / libiconv / documentation / libiconv / iconv_open.3.html

См. здесь полный пример, соответствующий вашему варианту использования.

24
ответ дан 30 November 2019 в 06:04
поделиться

Если вы используете iconv, убедитесь, что ваш языковой стандарт установлен правильно, прежде чем пытаться транслитерировать, иначе некоторые символы не будут правильно транслитерированы

setlocale(LC_CTYPE, 'en_US.UTF8');
13
ответ дан 30 November 2019 в 06:04
поделиться

Проблема с вашим запросом в том, что это очень сложно сделать. Не все глифы в большинстве языков имеют эквиваленты az, все глифы имеют фонетические эквиваленты (но это слова, а не буквы), если вы просто имеете дело с языками на основе латыни, тогда все немного проще, но у вас все еще есть проблемы с такими вещами, как I-мутация .

Лучшее слово для решения - составить грубый список фонетических звуков -> аз-эквиваленты, он не будет идеальным, но без дополнительной информации о ваших точных требованиях будет сложно разработать решение.

0
ответ дан 30 November 2019 в 06:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: