2

我有一个解密早期解密数据的功能:

public function Decrypt($encrypedText) {
    $key = "The secret key is";
    $decryptedText = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($encrypedText), MCRYPT_MODE_ECB);

    $trimmedData = rtrim($decryptedText, '\0');

    echo strlen($trimmedData);          // 32

    return $trimmedData;
}

如果我在函数中输入“测试”,结果将是“测试”+ 28 个空格。我从有人告诉我在上面的函数中使用“rtrim”来删除空格的提示,但这似乎不起作用(当我检查结果的长度时,它仍然是 32)。

我该怎么做才能删除这些空白?

4

2 回答 2

1

尝试在没有第二个参数的情况下调用rtrim() 。这将去除大量空白字符,而不仅仅是您指定的 NUL 字节字符。

$trimmedData = rtrim($decryptedText);
于 2012-09-25T20:19:56.117 回答
0

奇怪, trim() 应该可以工作。试试正则表达式:

$string = preg_replace('~\s+$~', '', $string);
于 2012-09-25T20:00:44.523 回答