Простая криптография: алгоритм дешифрования, необходимый в PHP

Я работаю на веб-странице, что у меня есть такой текст:
АА, ВВ, СС, А1, В2, С3
И я хочу, чтобы какой-то код заменил слово (например, AA) на строку, сохраненную в переменной, например, это моя переменная php:

<?php $var1 = "A"; //For AA $var2 = "B"; //For BB $var3 = "C"; //For CC $var4 = "1"; //For A1 $var5 = "2"; //For B2 $var6 = "3"; //For C3 ?> 

И текст AA, BB, CC, A1, B2, B3 будет выглядеть так:
ABC123
Как я могу это сделать с помощью php?

В летние годы мне нужен алгоритм дешифрования для шифрованного текста AA,BB,CC,A1,B2,C3 должен быть преобразован в текст плана ABC123 .

Полный рабочий скрипт с примером каталога шифрования приведен здесь.

 <?php $encript = array( 'a'=>'GG', 'b'=>'HH', 'c'=>'II', 'A'=>'DD', 'B'=>'EE', 'B'=>'FF', '1'=>'AA', '2'=>'BB', '3'=>'CC'); function decrypt($str,$encript) { $decript = array_flip($encript); $str_arr = explode(",",$str); $dec = ""; foreach($str_arr as $val) { $dec .= $decript[strtoupper(trim($val))]; } return $dec; } function encrypt($str,$encript) { $str_arr = str_split($str); $dec = ""; foreach($str_arr as $val) { $dec .= $encript[trim($val)].","; } return $dec; } $cypher = "AA,BB,DD,CC,EE,FF,GG,HH"; $text = "Ab1Ca"; echo decrypt($cypher,$encript); echo "<br/>"; echo encrypt($text,$encript); ?> 
  • Сначала мы должны создать отображение для каждого символа как ассоциативного массива.
  • В дешифровке сначала нужно перевернуть массив.
  • Затем нужно пропустить каждую строку кодировки и построить реальный текст из перевернутого массива.
  • В шифровании разделяем строку как единый буквенный массив.
  • Прокрутите массив и постройте шифрование с помощью массива сопоставлений.

Вывод доступен по следующему URL: http://sugunan.net/demo/str1.php

Предполагая, что текст хранится в $string , попробуйте следующее:

 $vars = array( 'AA' => 'A', 'BB' => 'B', 'CC' => 'C', 'A1' => '1', 'B2' => '2', 'C3' => '3', ); $string = str_replace(array_keys($vars), array_values($vars), $string); 

Также str_replace внимание на предупреждение из документов PHP на str_replace :

Замена заказа

Поскольку str_replace() заменяет слева направо, он может заменить ранее вставленное значение при выполнении нескольких замен. См. Также примеры в этом документе .

Попробуй это

 $str = 'AA,BB,CC,A1,B2,C3'; $arr = explode(',', $str); $newStr = ''; foreach($arr as $val){ $newStr .= substr($val,1,1); } echo $newStr; 

Вывод

 ABC123 

Если вы не хотите менять свои строки, попробуйте это

 $count = 0; while(true){ $var = "var".++$count; if($$var){ $$var = ${$var}[1]; } else break; } в $count = 0; while(true){ $var = "var".++$count; if($$var){ $$var = ${$var}[1]; } else break; }