我试图将POST数组中的值转换为输入字段中输入的确切字母和数字,该数组中的字母和数字会在提交时自动替换为其他字符和数字。
我绘制了组合 - 例如,当您键入" 123456"在输入字段中,您在POST上获得的是" DTHAQO",其中" D"代表" 1"," T"代表" 2",依此类推。我想要做的就是转换那个" D"到" 1"自动,以及每个其他字母/数字,以便最终的POST值是实际值。
到目前为止我想出了什么:
<?php
function decoder() {
$decode = $_POST['password'];
if (strpos($decode,"D") !== false) {
str_replace("D","1",$decode);
}
if (strpos($decode,"T") !== false) {
str_replace("T","2",$decode);
}
}
$decoded = decoder();
echo $decoded;
?>
然而,在回声时,没有任何反应。
我做错了什么?
答案 0 :(得分:0)
您需要该函数返回一个值才能使用/ echo it。
<?php
function decoder() {
$decode = $_POST['password'];
if (strpos($decode,"D") !== false) {
$ret_val = str_replace("D","1",$decode);
return $ret_val;
}
if (strpos($decode,"T") !== false) {
$ret_val = str_replace("T","2",$decode);
return $ret_val;
}
}
$decoded = decoder();
echo $decoded;
?>
答案 1 :(得分:0)
我认为这应该有效,但正如Maximus2012在评论中所说,有更好的方法可以做到这一点
$decode = "DTHAQO";//maybe your POST value
function decoder( $stringToDecode ) {
$decodeArray = array(
"D" => 1,
"T" => 2,
"H" => 3,
"A" => 4,
"Q" => 5,
"O" => 6
);
for( $i = 0; $i < strlen( $stringToDecode ); $i++ ) {
$stringToDecode[$i] = ( isset( $decodeArray[ $stringToDecode[$i] ] ) ) ? $decodeArray[ $stringToDecode[$i] ] : $stringToDecode[$i];
}
return $stringToDecode;
}
$decoded = decoder( $decode );
echo $decoded;
答案 2 :(得分:-1)
if if statements replace
str_replace("D","1",$decode);
到
$decode = str_replace("D","1",$decode);
对所有类似于str_replace(letter, number,$decode)
行
<强>更新强> 另外,将return语句添加到函数
中