2

我已经学会了如何在 PHP 中对字符串进行 Base16 编码,但是如何在 PHP 中对字符串进行 Base36 编码和解码?

注意我需要这个来使字符串在 URL 中工作。

奖励:如果你知道如何在做 Base36 之前先稍微压缩字符串,那就更酷了!:)

4

2 回答 2

1

谷歌告诉我这个:http ://darklaunch.com/2009/07/31/base36-encode-and-decode-using-php-with-example-base36-encode-base36-decode

无论如何,如果您想在 URL 中使用base64 ,它应该满足您的需求。

奖励:gzcompress()gzuncompress() ;)(必须安装 Zlib 扩展)。

于 2010-07-12T09:40:46.183 回答
0

我很久以前写过这篇文章,但我认为它从那时起就没有改变;)

function number2ascii($input='', $base=10){                                                                                                                                                                                                                        
    $length = strlen($input);                                                                                                                                                                                                                                      
    $dec = base_convert(255, 10, $base);                                                                                                                                                                                                                           
    $chars = strlen($dec);                                                                                                                                                                                                                                         
    $output = '';                                                                                                                                                                                                                                                  

    for($i=0; $i<$length; $i+=$chars){                                                                                                                                                                                                                             
        $text = substr($input, $i, $chars);                                                                                                                                                                                                                        
        $dec = base_convert($text, $base, 10);                                                                                                                                                                                                                     
        $output .= chr($dec);                                                                                                                                                                                                                                      
    }                                                                                                                                                                                                                                                              
    return $output;                                                                                                                                                                                                                                                
}                                                                                                                                                                                                                                                                  


function ascii2number($input='', $base=10){                                                                                                                                                                                                                        
    $length = strlen($input);                                                                                                                                                                                                                                      
    $dec = base_convert(255, 10, $base);                                                                                                                                                                                                                           
    $chars = strlen($dec);                                                                                                                                                                                                                                         
    $output = '';                                                                                                                                                                                                                                                  

    for($i=0; $i<$length; $i++){                                                                                                                                                                                                                                   
        $dec = ord($input[$i]);                                                                                                                                                                                                                                    
        $number = base_convert($dec, 10, $base);                                                                                                                                                                                                                   
        $number = str_pad($number, $chars, 0, STR_PAD_LEFT);                                                                                                                                                                                                       
        $output .= $number.' ';                                                                                                                                                                                                                                    
    }                                                                                                                                                                                                                                                              
    return $output;                                                                                                                                                                                                                                                
}
于 2010-07-12T09:37:47.950 回答