@WQP

Какая обратная функция к этой?

Здравствуйте, имеется код и он кодирует строку, а как её раскодировать?
function decode_char($c) 
{ 
  $a1 = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "W", "G", "X", "M", "H", "R", "U", "Z", "I", "D", "=", "N", "Q", "V", "B", "L");  
  $a2 = array("b", "z", "a", "c", "l", "m", "e", "p", "s", "J", "x", "d", "f", "t", "i", "o", "Y", "k", "n", "g", "r", "y", "T", "w", "u", "v");  
  $result = $c; 
  for($j = 0; $j < count($a1); $j++) { 
    if ($c == $a1[$j][0]) { 
      $result = $a2[$j][0]; 
      break; 
    } 
    if ($c == $a2[$j][0]) { 
      $result = $a1[$j][0]; 
      break; 
    } 
  } 
  return $result; 
}
         
function encode_str($s) 
{ 
  $s = base64_encode($s); 
  $result = ''; 
  for($i = 0; $i < strlen($s); $i++) { 
    $result .= decode_char($s[$i]); 
  } 
  return $result; 
} 
encode_str('test)
  • Вопрос задан
  • 2308 просмотров
Решения вопроса 1
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
Вот этот код выведет сначала закодированную, потом раскодированную строку:
<?php
function decode_char($c) 
{ 
  $a1 = array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "W", "G", "X", "M", "H", "R", "U", "Z", "I", "D", "=", "N", "Q", "V", "B", "L");  
  $a2 = array("b", "z", "a", "c", "l", "m", "e", "p", "s", "J", "x", "d", "f", "t", "i", "o", "Y", "k", "n", "g", "r", "y", "T", "w", "u", "v");  
  $result = $c; 
  for($j = 0; $j < count($a1); $j++) { 
    if ($c == $a1[$j][0]) { 
      $result = $a2[$j][0]; 
      break; 
    } 
    if ($c == $a2[$j][0]) { 
      $result = $a1[$j][0]; 
      break; 
    } 
  } 
  return $result; 
}
         
function encode_str($s) 
{ 
  $s = base64_encode($s); 
  $result = ''; 
  for($i = 0; $i < strlen($s); $i++) { 
    $result .= decode_char($s[$i]); 
  } 
  return $result; 
} 

function decode_str($s)
{
  $r = '';
  for ($i = 0; $i < strlen($s); $i++){
     $r .= decode_char($s[$i]);
  }
  $r = base64_decode($r);
  return $r;
}


$a = encode_str('test');
echo($a."\n");
echo(decode_str($a)."\n");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы