Heim >Backend-Entwicklung >PHP-Tutorial >PHP中字符串与多进制转换函数

PHP中字符串与多进制转换函数

WBOY
WBOYOriginal
2016-07-29 09:00:411022Durchsuche

转换函数

/**
 * [字符串转换为(2,8,16进制)ASCII码]
 * @param  string  $str     [待处理字符串]
 * @param  boolean $encode  [字符串转换为ASCII|ASCII转换为字符串]
 * @param  string  $intType [2,8,16进制标示]
 * @return string  byte_str [处理结果]
 * @author alexander
 */
function strtoascii($str, $encode=true, $intType="2"){
    if($encode == true){
        $byte_array = str_split($str);
        foreach($byte_array as &$value){
            $value = ord($value);
            switch ($intType) {
                case 16:
                    $value = sprintf("%02x", $value);
                    break;
                case 8:
                    $value = sprintf("%03o", $value);
                    break;
                default:
                    $value = sprintf("%08b", $value);
                    break;
            }
        }
        unset($value);
        $byte_str = implode('', $byte_array);
    }
    else{
        $chunk_size = $intType == 16 ? 2 : ($intType == 8 ? 3 : 8);
        $byte_array = chunk_split($str, $chunk_size);
        $byte_array = array_filter(explode("\r\n", $byte_array));
        foreach($byte_array as &$value){
            $fun_name = $intType == 16 ? 'hexdec' : ($intType == 8 ? 'octdec' : 'bindec');
            $value = $fun_name($value);
            $value = chr($value);
        }
        unset($value);
        $byte_str = implode('', $byte_array);
    }
    return $byte_str;
}

PHP中的多进制

PHP 整型值可以使用十进制,十六进制,八进制或二进制表示,前面可以加上可选的符号(- 或者 +)。

二进制:[+-]?0b[01]+

八进制:[+-]?0[1-7]+

十进制:[+-]?[1-9][0-9]*|0

十六进制:[+-]?[xX][0-9a-fA-F]+

多进制转换函数:

bindec 二进制转换为十进制
decbin 十进制转换为二进制
octdec 八进制转换为十进制
decoct 十进制转换为八进制
hexdec 十六进制转换为十进制
dechex 十进制转换为十六进制

以上就介绍了PHP中字符串与多进制转换函数,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn