
Славик
06.02.2016
21:38:59
с*
function getMorseData() {
$json = '{"0":"−−−−−","1":"·−−−−","2":"··−−−","3":"···−−","4":"····−","5":"·····","6":"−····","7":"−−···","8":"−−−··","9":"−−−−·","А":"·−","A":"·−","Б":"−···","B":"−···","В":"·−−","W":"·−−","Г":"−−·","G":"−−·","Д":"−··","D":"−··","Ё":".","Е":"·","E":"·","Ж":"···−","V":"···−","З":"−−··","Z":"−−··","И":"··","I":"··","Й":"·−−−","J":"·−−−","К":"−·−","K":"−·−","Л":"·−··","L":"·−··","М":"−−","M":"−−","Н":"−·","N":"−·","О":"−−−","O":"−−−","П":"·−−·","P":"·−−·","Р":"·−·","R":"·−·","С":"···","S":"···","Т":"−","T":"−","У":"··−","U":"··−","Ф":"··−·","F":"··−·","Х":"····","H":"····","Ц":"−·−·","C":"−·−·","Ч":"−−−·","Ö":"−−−·","Ш":"−−−−","CH":"−−−−","Щ":"−−·−","Q":"−−·−","Ъ":"−−·−−","Ñ":"−−·−−","Ы":"−·−−","Y":"−·−−","Ь":"−··−","X":"−··−","Э":"··−··","É":"··−··","Ю":"··−−","Ü":"··−−","Я":"·−·−","Ä":"·−·−",".":"······",",":"·−·−·−",":":"−−−···",";":"−·−·−·","(":"−·−−·−",")":"−·−−·−","\'":"·−−−−·","\"":"·−··−·","—":"−····−","/":"−··−·","?":"··−−··","!":"−−··−−","Знак раздела":"−···−","Ошибка/перебой":"········","@":"·−−·−·","Конец связи (end contact)":"··−·−"}';
return json_decode($json, true);
}
function convertToMorse($text) {
$data = getMorseData();
$upperText = mb_strtoupper($text, "utf-8");
$symbols = preg_split("//u", $upperText, -1);
for ($i = 0; $i < count($symbols); $i++) {
$s = $symbols[$i];
if ($data[$s]) {
$symbols[$i] = $data[$s] . " ";
} elseif ($s == " ") {
$symbols[$i] = " ";
}
}
return implode('', $symbols);
}
function converFromMorse($morse) {
$data = getMorseData();
$revertedData = array();
foreach ($data as $key => $value) {
$revertedData[$value] = $key;
}
$result = "";
$symbols = preg_split("/(?<!\s)\s|(?<=\s{2})\s/u", $morse);
for ($i = 0; $i <= count($symbols); $i++) {
$s = $symbols[$i];
$result .= $revertedData[$s] ? $revertedData[$s] : $s;
}
return $result;
}