解码php中的POST值

时间:2015-09-22 13:47:33

标签: php

我试图将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;

?>

然而,在回声时,没有任何反应。

我做错了什么?

3 个答案:

答案 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语句添加到函数