1

質問: これらが出力で一致しないのはなぜですか?

FILTER_SANITIZE_STRING でサナタイズされた MD5 ハッシュの短縮バージョンを渡すと、何が問題を引き起こしているのかわかりません。

md5ハッシュをサニタイズするのは奇妙に思えますが、このクラスはこの方法で使用されるだけでなく、同じことを行うために複数のメソッドを作成しないようにしています。

class test {
public function select($match,$debug) {
        $match1 = filter_var($match, FILTER_SANITIZE_STRING);
        if ($debug == '1') {
            var_dump($match,$match1);
        }

}
}

$title = "April 2013"; // Example Title
$currentHUID = substr(md5($title), 0, 12); // Convert string to UID not for encryption just comparison first 12 char of MD5 Hash

$test = new test();
$test->select("'$currentHUID'",'1');

結果: string(14) "'8860d4398c9b'" string(22) "'8860d4398c9b'"

4

1 に答える 1

2

値とともに一重引用符を送信していますが、これらはエンコードされます。

使用する場合:

$match1 = filter_var($match, FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);

結果は入力と同じになります。

マニュアルも参照してください。

于 2013-05-14T02:57:26.287 に答える