Здравствуйте, у меня есть эта функция для замены греческих символов на латинские.
function greeklish($Name)
{
$greek = array('α','ά','Ά','Α','β','Β','γ', 'Γ', 'δ','Δ','ε','έ','Ε','Έ','ζ','Ζ','η','ή','Η','θ','Θ','ι','ί','ϊ','ΐ','Ι','Ί', 'κ','Κ','λ','Λ','μ','Μ','ν','Ν','ξ','Ξ','ο','ό','Ο','Ό','π','Π','ρ','Ρ','σ','ς', 'Σ','τ','Τ','υ','ύ','Υ','Ύ','φ','Φ','χ','Χ','ψ','Ψ','ω','ώ','Ω','Ώ',' ',"'","'",',');
$english = array('a', 'a','A','A','b','B','g','G','d','D','e','e','E','E','z','Z','i','i','I','th','Th', 'i','i','i','i','I','I','k','K','l','L','m','M','n','N','x','X','o','o','O','O','p','P' ,'r','R','s','s','S','t','T','u','u','Y','Y','f','F','ch','Ch','ps','Ps','o','o','O','O','_','_','_','_');
$string = str_replace($greek, $english, $Name);
return $string;
}
echo greeklish("Το ελληνικό κείμενο εδώ");
и мне было интересно, есть ли быстрый способ изменить эту функцию, чтобы заменить/удалить любой символ, найденный в $Name
, который не находится в массиве $greek
с ''
ОБНОВЛЕНИЕ
Я забыл упомянуть, что в Греции есть способ набора текста, который в основном используется людьми младшего возраста, когда они печатают греческие слова латинскими буквами. Также нет чего-то стандартного например:
'ει'
'υ'
'ι'
'οι'
'η'
звучит как 'e'
'θ'
можно записать как 'th'
или '8'
или даже '3'
поэтому для этого преобразования необходим специальный алгоритм.
setlocale
, но в конце концов это сработало (для большая часть). - person Mihai Stancu   schedule 26.03.2014mb_ord
/mb_chr
каждого символа в тексте и вычесть разницу междуa
иα
. Я хотел проверить, не смещены ли алфавиты (случайно) на фиксированное значение. Но это не так :-). - person Mihai Stancu   schedule 26.03.2014