代码之家  ›  专栏  ›  技术社区  ›  holyredbeard

从加密数据中删除空白

  •  2
  • holyredbeard  · 技术社区  · 12 年前

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

    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;
    }
    

    如果我在函数中输入“Test”,结果将是“Test”+28个空格。我从一个人那里得到了一些提示,他告诉我像上面的函数中那样使用“rtrim”来删除空白,但这似乎不起作用(当我检查结果的长度时,它仍然是32)。

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

    2 回复  |  直到 12 年前
        1
  •  1
  •   Buggabill    12 年前

    试着打电话 rtrim() 没有第二个论点。这将去除大量空白字符,而不仅仅是您指定的NUL字节字符。。

    $trimmedData = rtrim($decryptedText);
    
        2
  •  0
  •   Glavić    12 年前

    奇怪,trim()应该有效。尝试正则表达式:

    $string = preg_replace('~\s+$~', '', $string);