如何从字符串末尾删除退格字符

  • 本文关键字:删除 字符 字符串 php
  • 更新时间 :
  • 英文 :


Litteraly,我正在为此自杀。这应该是一件小事,但我已经花了大约几个小时了。

function ssl_encrypt($pass, $data) {
    $salt = substr(md5(mt_rand(), true), 8);
    $key = md5($pass . $salt, true);
    $iv = md5($key . $pass . $salt, true);
    $ct = mcrypt_encrypt (MCRYPT_RIJNDAEL_128, $key, $data,
                          MCRYPT_MODE_CBC, $iv);
    return base64_encode('Salted__' . $salt . $ct);
}
 $key = ssl_encrypt('super', trim($_POST['pass']));

我正在加密一个字符串并保存到文件中:

 $value = $_POST['service'] . "=" . $key . "n";

 file_put_contents($file, $value , FILE_APPEND); 

它输出如下内容:

U2FsdGVkX1+0NB4++Kx28hUWNGwIqBoabI2O22U1TbpJ0n4FhzZvGtmSWiP7VOZj⏎

我认为最后一个符号是这个""来自

 $value = $_POST['service'] . "=" . $key . "n";

我什至尝试过这样的事情:

   $value = $_POST['service'] . "=" . $key.PHP_EOL;
        $fh = fopen($file,"a+");
        fwrite($fh, $value); //write to txtfile
        fclose($fh);

它仍然输出这个:

U2FsdGVkX1+0NB4++Kx28hUWNGwIqBoabI2O22U1TbpJ0n4FhzZvGtmSWiP7VOZj⏎

如何摆脱最后一个退格符号?请注意,在这种情况下,子字符串不是一个选项。

这就是我解密的方式:

function ssl_decrypt($pass, $data) {
    $data = base64_decode($data);
    $salt = substr($data, 8, 8);
    $ct = substr($data, 16);
    $key = md5($pass . $salt, true);
    $iv = md5($key . $pass . $salt, true);
    $pt = mcrypt_decrypt (MCRYPT_RIJNDAEL_128, $key, $ct,
                          MCRYPT_MODE_CBC, $iv);
    return $pt;
}
$Loader = new josegonzalezDotenvLoader($pathtoenv);

解析 .env 文件

$environment = (new josegonzalezDotenvLoader($pathtoenv))
              ->parse()
              ->toArray();

$digitalpass = ssl_decrypt('super', (string)$_ENV['digital']);

我认为有很多方法可以做到这一点:

  • 使用 substr() 删除最后一个字符:substr($output, 0, -1);
  • 使用 chop() 删除所需的字符串:chop($output,"⏎");
  • 或者也许使用 trim(),就像肯尼说的那样:trim($output)

使用以下代码片段从字符串中删除所有不可打印的字符:

$trimmedVal = preg_replace("/s+|[[:^print:]]/", "", $value)

最新更新