在类中使用FILTER_SANITIZE_STRING将字符串转换为md5哈希


string to md5 hash in class using FILTER_SANITIZE_STRING

问题:为什么这些在输出上不匹配?

我一直在追踪一个让我很头疼的问题我不知道是什么导致了传递一个缩短版本的MD5哈希它被FILTER_SANITIZE_STRING

我知道我清理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');

结果: 字符串(14)"8860 d4398c9b"字符串(22)"8860 d4398c9b"

您正在发送带有您的值的单引号,这些引号将被编码。

如果你使用:

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

结果将与输入相同。

的例子。