<?php
$trans = array('а' => 'a', 'б' => 'b', 'в' => 'v',
'г' => 'g', 'д' => 'd', 'е' => 'e',
'ё' => 'e', 'ж' => 'zh', 'з' => 'z',
'и' => 'i', 'й' => 'y', 'к' => 'k',
'л' => 'l', 'м' => 'm', 'н' => 'n',
'о' => 'o', 'п' => 'p', 'р' => 'r',
'с' => 's', 'т' => 't', 'у' => 'u',
'ф' => 'f', 'х' => 'h', 'ц' => 'c',
'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch',
'ь' => '\'', 'ы' => 'y', 'ъ' => '\'',
'э' => 'e', 'ю' => 'yu', 'я' => 'ya');
$text = "Первый текст";
function translit($text){
$newText = "";
foreach($text as $rus){
$eng = $trans[$rus];
$newText .= $eng;
}
return $newText;
}
echo "Новый текст - " . translit($text);
?>
PHP
Помогите с php кодом, плиз) хотел функцию транслитерации написать, только ошибка выходит и все :(
Вы изобретаете велосипед. На Github довольно много подобных функций.
//Функция заменяет все русские символы на соответствующие латинские
//Пример: $nickname=translitToLatin($name,"test=label,change=_")
//$param задается в виде строки, где:
//"change=_" - все неподходящие символы заменяются на указанный символ "_" (иначе удаляются)
function translitToLatin($str="",$param=""){
$new_str="";
$param=$param?preg_split("~[\s,]+~",$param,-1,PREG_SPLIT_NO_EMPTY):"";
if(is_array($param)){
foreach($param as $item){
$arr_vars=explode("=",$item);
$parametres[$arr_vars[0]]=$arr_vars[1];
}
}
//arrayPrint($parametres);
$parten="~[-a-z0-9\s_.]~i";
$space=$parametres["space"]?"\s":"";
switch($parametres["test"]){
case "tr_label":$parten="~[a-z0-9_".$space."]~i";break;
case "tr_rus":$parten="~[а-яё".$space."]~i";break;
case "tr_file":$parten="~[-a-z0-9_!@#%&\(\)\[\];.,\+=]~i";break;
case "tr_item":$parten="~[-a-z0-9_".$space."]~i";break;
case "tr_numbers":$parten="~[0-9".$space."]~";break;
}
$flag_single=$parametres["single"]?true:false;
$str_length=strlen($str);
for($i=0; $i<$str_length; $i++){
if(preg_match($parten,$str{$i})){
$new_str.=$str{$i};
}
elseif(preg_match("~[а-яё]~i",$str{$i})){
switch($str{$i}){
case "а": $new_str.="a"; break;
case "б": $new_str.="b"; break;
case "в":$new_str.="v"; break;
case "г": $new_str.="g"; break;
case "д": $new_str.="d"; break;
case "е":$new_str.="e"; break;
case "ё": $new_str.=$flag_single?"e":"yo"; break;
case "ж": $new_str.="j"; break;
case "з": $new_str.="z"; break;
case "и": $new_str.="i"; break;
case "й": $new_str.="y"; break;
case "к": $new_str.="k"; break;
case "л": $new_str.="l"; break;
case "м": $new_str.="m"; break;
case "н": $new_str.="n"; break;
case "о": $new_str.="o"; break;
case "п": $new_str.="p"; break;
case "р": $new_str.="r"; break;
case "с": $new_str.="s"; break;
case "т": $new_str.="t"; break;
case "у": $new_str.="u"; break;
case "ф": $new_str.="f"; break;
case "х": $new_str.="h"; break;
case "ц": $new_str.=$flag_single?"s":"ts"; break;
case "ч": $new_str.=$flag_single?"c":"ch"; break;
case "ш": $new_str.=$flag_single?"s":"sh"; break;
case "щ": $new_str.=$flag_single?"s":"sch"; break;
case "ъ": $new_str.=$flag_single?"`":""; break;
case "ы": $new_str.=$flag_single?"i":"yi"; break;
case "ь": $new_str.=$flag_single?"`":""; break;
case "э": $new_str.="e"; break;
case "ю": $new_str.=$flag_single?"u":"yu"; break;
case "я": $new_str.=$flag_single?"y":"ya"; break;
case "А": $new_str.="A"; break;
case "Б": $new_str.="B"; break;
case "В": $new_str.="V"; break;
case "Г": $new_str.="G"; break;
case "Д": $new_str.="D"; break;
case "Е": $new_str.="E"; break;
case "Ё": $new_str.=$flag_single?"E":"YO"; break;
case "Ж": $new_str.="J"; break;
case "З": $new_str.="Z"; break;
case "И": $new_str.="I"; break;
case "Й": $new_str.="Y"; break;
case "К": $new_str.="K"; break;
case "Л": $new_str.="L"; break;
case "М": $new_str.="M"; break;
case "Н": $new_str.="N"; break;
case "О": $new_str.="O"; break;
case "П": $new_str.="P"; break;
case "Р": $new_str.="R"; break;
case "С": $new_str.="S"; break;
case "Т": $new_str.="T"; break;
case "У": $new_str.="U"; break;
case "Ф": $new_str.="F"; break;
case "Х": $new_str.="H"; break;
case "Ц": $new_str.=$flag_single?"S":"TS"; break;
case "Ч": $new_str.=$flag_single?"C":"CH"; break;
case "Ш": $new_str.=$flag_single?"S":"SH"; break;
case "Щ": $new_str.=$flag_single?"S":"SCH"; break;
case "Ъ": $new_str.=$flag_single?"`":""; break;
case "Ы": $n
//Пример: $nickname=translitToLatin($name,"test=label,change=_")
//$param задается в виде строки, где:
//"change=_" - все неподходящие символы заменяются на указанный символ "_" (иначе удаляются)
function translitToLatin($str="",$param=""){
$new_str="";
$param=$param?preg_split("~[\s,]+~",$param,-1,PREG_SPLIT_NO_EMPTY):"";
if(is_array($param)){
foreach($param as $item){
$arr_vars=explode("=",$item);
$parametres[$arr_vars[0]]=$arr_vars[1];
}
}
//arrayPrint($parametres);
$parten="~[-a-z0-9\s_.]~i";
$space=$parametres["space"]?"\s":"";
switch($parametres["test"]){
case "tr_label":$parten="~[a-z0-9_".$space."]~i";break;
case "tr_rus":$parten="~[а-яё".$space."]~i";break;
case "tr_file":$parten="~[-a-z0-9_!@#%&\(\)\[\];.,\+=]~i";break;
case "tr_item":$parten="~[-a-z0-9_".$space."]~i";break;
case "tr_numbers":$parten="~[0-9".$space."]~";break;
}
$flag_single=$parametres["single"]?true:false;
$str_length=strlen($str);
for($i=0; $i<$str_length; $i++){
if(preg_match($parten,$str{$i})){
$new_str.=$str{$i};
}
elseif(preg_match("~[а-яё]~i",$str{$i})){
switch($str{$i}){
case "а": $new_str.="a"; break;
case "б": $new_str.="b"; break;
case "в":$new_str.="v"; break;
case "г": $new_str.="g"; break;
case "д": $new_str.="d"; break;
case "е":$new_str.="e"; break;
case "ё": $new_str.=$flag_single?"e":"yo"; break;
case "ж": $new_str.="j"; break;
case "з": $new_str.="z"; break;
case "и": $new_str.="i"; break;
case "й": $new_str.="y"; break;
case "к": $new_str.="k"; break;
case "л": $new_str.="l"; break;
case "м": $new_str.="m"; break;
case "н": $new_str.="n"; break;
case "о": $new_str.="o"; break;
case "п": $new_str.="p"; break;
case "р": $new_str.="r"; break;
case "с": $new_str.="s"; break;
case "т": $new_str.="t"; break;
case "у": $new_str.="u"; break;
case "ф": $new_str.="f"; break;
case "х": $new_str.="h"; break;
case "ц": $new_str.=$flag_single?"s":"ts"; break;
case "ч": $new_str.=$flag_single?"c":"ch"; break;
case "ш": $new_str.=$flag_single?"s":"sh"; break;
case "щ": $new_str.=$flag_single?"s":"sch"; break;
case "ъ": $new_str.=$flag_single?"`":""; break;
case "ы": $new_str.=$flag_single?"i":"yi"; break;
case "ь": $new_str.=$flag_single?"`":""; break;
case "э": $new_str.="e"; break;
case "ю": $new_str.=$flag_single?"u":"yu"; break;
case "я": $new_str.=$flag_single?"y":"ya"; break;
case "А": $new_str.="A"; break;
case "Б": $new_str.="B"; break;
case "В": $new_str.="V"; break;
case "Г": $new_str.="G"; break;
case "Д": $new_str.="D"; break;
case "Е": $new_str.="E"; break;
case "Ё": $new_str.=$flag_single?"E":"YO"; break;
case "Ж": $new_str.="J"; break;
case "З": $new_str.="Z"; break;
case "И": $new_str.="I"; break;
case "Й": $new_str.="Y"; break;
case "К": $new_str.="K"; break;
case "Л": $new_str.="L"; break;
case "М": $new_str.="M"; break;
case "Н": $new_str.="N"; break;
case "О": $new_str.="O"; break;
case "П": $new_str.="P"; break;
case "Р": $new_str.="R"; break;
case "С": $new_str.="S"; break;
case "Т": $new_str.="T"; break;
case "У": $new_str.="U"; break;
case "Ф": $new_str.="F"; break;
case "Х": $new_str.="H"; break;
case "Ц": $new_str.=$flag_single?"S":"TS"; break;
case "Ч": $new_str.=$flag_single?"C":"CH"; break;
case "Ш": $new_str.=$flag_single?"S":"SH"; break;
case "Щ": $new_str.=$flag_single?"S":"SCH"; break;
case "Ъ": $new_str.=$flag_single?"`":""; break;
case "Ы": $n
function translit($str){
$str = str_replace(' ', '_', $str);
$lett = array(
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e",
"ё"=>"yo","ж"=>"zh","з"=>"z","и"=>"i","й"=>"i","к"=>"k","л"=>"l", "м"=>"m",
"н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t",
"у"=>"y","ф"=>"f","х"=>"h","ц"=>"c","ч"=>"ch", "ш"=>"sh","щ"=>"sch",
"ы"=>"i","э"=>"e","ю"=>"u","я"=>"ya",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E", "Ё"=>"Yo",
"Ж"=>"Zh","З"=>"Z","И"=>"I","Й"=>"I","К"=>"K", "Л"=>"L","М"=>"M",
"Н"=>"N","О"=>"O","П"=>"P", "Р"=>"R","С"=>"S","Т"=>"T","У"=>"Y",
"Ф"=>"F", "Х"=>"H","Ц"=>"C","Ч"=>"Ch","Ш"=>"Sh","Щ"=>"Sch",
"Ы"=>"I","Э"=>"E","Ю"=>"U","Я"=>"Ya",
"ь"=>"","Ь"=>"","ъ"=>"","Ъ"=>""
);
return strtr($str, $lett);
}
$str = str_replace(' ', '_', $str);
$lett = array(
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e",
"ё"=>"yo","ж"=>"zh","з"=>"z","и"=>"i","й"=>"i","к"=>"k","л"=>"l", "м"=>"m",
"н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t",
"у"=>"y","ф"=>"f","х"=>"h","ц"=>"c","ч"=>"ch", "ш"=>"sh","щ"=>"sch",
"ы"=>"i","э"=>"e","ю"=>"u","я"=>"ya",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E", "Ё"=>"Yo",
"Ж"=>"Zh","З"=>"Z","И"=>"I","Й"=>"I","К"=>"K", "Л"=>"L","М"=>"M",
"Н"=>"N","О"=>"O","П"=>"P", "Р"=>"R","С"=>"S","Т"=>"T","У"=>"Y",
"Ф"=>"F", "Х"=>"H","Ц"=>"C","Ч"=>"Ch","Ш"=>"Sh","Щ"=>"Sch",
"Ы"=>"I","Э"=>"E","Ю"=>"U","Я"=>"Ya",
"ь"=>"","Ь"=>"","ъ"=>"","Ъ"=>""
);
return strtr($str, $lett);
}
Похожие вопросы
- Помогите с PHP кодом! Где косяк?
- При написании php кода для отправки записи в базу данных выходит ошибка
- Структура PHP кода
- помогите с php не получается функция
- Если нужно создать сайт с использованием php,то index страница должна быть написана на php?
- Допиливать самописный движок на PHP, код к которому писали 14 лет - стоит ли соглашаться на такую работу?
- PHP. Почему нельзя применять функцию count() к строкам? Ведь строка это тот же массив
- СРОЧНО! ЧТО ВЫПОЛНЯЕТ ЭТОТ PHP КОД?
- Помогите с PHP.
- ошибка в коде php