将 Java 方法 Base64.encodeToString() 转换为 PHP

Convert Java method Base64.encodeToString() to PHP

您好,我有以下 java 代码:

Base64.encodeToString(("users name").getBytes(), 2);

我正在尝试将其转换为 php:

bytesEnc("users name");

function bytesEnc($string) {
    $bytes = array();
    for($i = 0; $i < strlen($string); $i++){
        $bytes[] = ord($string[$i]);
    }
    return $bytes;
}

我转换了 getBytes() 但我不知道下一步该怎么做。我知道函数 base64_encode 存在于 inn PHP 但 encodetoString java 方法的第二个参数值为 2 困扰我。 请帮忙

根据docs,第二个参数是按位标志。

如果值为 2,则使用标志 NO_WRAP

Encoder flag bit to omit all line terminators (i.e., the output will be on one long line).

这意味着它删除了新行。

function bytesEnc($string){
  $string = str_replace(PHP_EOL, '', $string);

  $bytes = array();
  for($i = 0; $i < strlen($string) - 1; $i++){
    $bytes[] = ord($string[$i]);
  }
  return $bytes;
}

echo base64_encode(implode('',bytesEnc('users name')));