Cyrillique translittération en PHP
Comment faire pour translittérer les caractères cyrilliques en caractères latins?
E.g. Главная страница -> Glavnaja stranica
Ce Translittération Extension PHP serait de le faire très bien, mais je ne peux pas l'installer sur mon serveur.
Il serait préférable d'avoir la même mise en œuvre, mais en PHP.
Vous devez vous connecter pour publier un commentaire.
Essayer de code suivant
@Culturels Teyyuboglu
Votre code a un problème: si vous essayez de translittérer par exemple "щеки" à la latine, et puis retour à l'alphabet cyrillique, il va produire quelque chose comme "схтеки". Les caractères multi-octets doit apparaître en premier dans le tableau comme ceci:
echo translittérer(null, translittérer("щеки")) == "щеки";
La meilleure option est d'utiliser PHP Extension Intl.
Vous pourriez l'installer premier.
Cela fera l'affaire:
J'ai appliqué "russe-Latin/BGN" parce que le demandeur a utilisé la langue russe dans sa question. Cependant, il ya des options pour d'autres langues écrites dans l'alphabet Cyrillique. Afficher tous ce faire:
yum install php71w-intl
manquant ё, э, ы (Э, Ы, Ё) lettres
Voici une fonction que j'utilise pour le nettoyage des personnages sur le Bosniaque,croate,serbe latin
Vous devriez essayer
iconv()
avec le//TRANSLIT
option.iconv()
n'a pas que la translittération régime. ICU n'est, cependant, de sorte que si PHP est compilé avec les unités de soins intensifs, vous pouvez utilisertransliterate
. (Vous devrez peut-êtreaptitude install php5-intl
que sur votre Debian-based machine.)J'ai écrit plein de translittération de classe pour toutes les langues Européennes pour l'utf-8. Peut aider (les commentaires sont en polonais, mais il n'y en a pas beaucoup alors, voici quelques conseils:
Espère que ça aidera quelques personnes en cause la mise en œuvre il a été un cauchemar 🙂
Edit: je viens de remarquer qu'une partie du code est manquant donc j'ai mis la totalité de la classe sur Pastie: classe
C'est ma version de la translittération de la table pour l'alphabet russe. C'est officieux, mais sur la base de normes techniques GOST 7.79-2000 et GOST 16876-71. Multi-caractères aller en premier.
Ce celui qui a le mieux fonctionné pour moi.
Le Code est à partir de cette page
Espère que cela aide quelqu'un.
strstr
affiche une erreur lorsque je tente de l'exécuterneedle is not a string or an integer
Depuis tous les ci-dessus sont incomplètes, voici ma version:
J'ai préféré ё = e, ъ = i, ы = y et э = e parce que je suis à l'aide de cette façon.
Respect de l'Yandex règles de translitération (http://www.translityandex.ru/) et de convertir les majuscules:
pour moi, la meilleure solution était d'utiliser