首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中编码Base36中的Unicode字符串?

如何在PHP中编码Base36中的Unicode字符串?
EN

Stack Overflow用户
提问于 2010-07-12 17:30:23
回答 2查看 5.7K关注 0票数 2

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

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

另外:如果您知道如何在执行Base36之前先稍微压缩字符串,那会更酷!:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-12 17:40:46

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

无论如何,如果你想在网址中使用base64,它应该能满足你的需要。

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

票数 1
EN

Stack Overflow用户

发布于 2010-07-12 17:37:48

我很久以前就写了这篇文章,但我想它从那以后就没有改变过;)

代码语言:javascript
复制
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;                                                                                                                                                                                                                                                
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3227262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档