eXorithm – Execute Algorithm: View / Run Algorithm morse

Logo Beta

function morse ($data$direction
{
  $codes = array
    'a' => '.-'
    'b' => '-...'
    'c' => '-.-.'
    'd' => '-...'
    'e' => '.'
    'f' => '..-.'
    'g' => '--.'
    'h' => '....'
    'i' => '..'
    'j' => '.---'
    'k' => '-.-'
    'l' => '.-..'
    'm' => '--'
    'n' => '-.'
    'o' => '---'
    'p' => '.--.'
    'q' => '--.-'
    'r' => '.-.'
    's' => '...'
    't' => '-'
    'u' => '..-'
    'v' => '...-'
    'w' => '.--'
    'x' => '-..-'
    'y' => '-.--'
    'z' => '--..'
    '0' => '-----'
    '1' => '.----'
    '2' => '..---'
    '3' => '...--'
    '4' => '....-'
    '5' => '.....'
    '6' => '-....'
    '7' => '--...'
    '8' => '---..'
    '9' => '----.'
    ',' => '--..--'
    '.' => '.-.-.-'
    '?' => '..--..'
    );
  
  $output = ''
  
  if ($direction=='text') {
    $codes = array_flip$codes);
    $elements = explode' '$data);
    foreach ($elements as $element) {
      if (array_key_exists$element$codes))
        $output .= $codes$element];
    }
  } else {
    $data = strtolower$data);
    $elements = str_split$data);
    foreach ($elements as $element) {
      if (array_key_exists$element$codes))
        $output .= $codes$element].' '
    }
    $output = trim$output);
  }
  
  return $output