Я работаю на веб-странице, что у меня есть такой текст:
АА, ВВ, СС, А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; }