将 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')));
您好,我有以下 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')));