2017-01-04 40 views
1

你好,我有java代碼:Java代碼PHP的(Base64,字節)

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」,但數字2打擾我。 請幫忙。

回答

0

根據docs第二個參數是按位標誌。

如果該值是2,那麼該標誌NO_WRAP用於:

編碼器標誌位省略所有行終止(即,輸出將是上一個長行)。

這意味着它將刪除新行。

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')));