`
hcmfys
  • 浏览: 356428 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

php 转码类

    博客分类:
  • php
阅读更多
Charset::convert(string input,string incharset,string outcharset)

Charset::unescape(string escaped,string outcharset)

Charset::escape(string string,string incharset)

Charset::jsondecode(string encoded,string outcharset)

Charset::jsonencode(mix value,string incharset)

Charset::pinYin(string chinese,string incharset)

PHP代码


<?php    
/*   
 * 编码转换     
 * 说明:   
 * jsonencode 有参考Services_JSON 但有很大区别 此处可以将utf-8 gb2312 big5都可以jsonencode   
 * jsondecode 自己原创 该算法是模拟目录读取的方法    
 *   可以将json中中文unicode编码unescape为gbk big5 utf8    
 */   
define('TABLE_DIR','./table');    
define('USEEXISTS',FALSE);//是否使用系统存在的php内置编码转换函数    
//其实php内置编码转换函数转换的不够好    
class Charset{    
        
    private static $target_lang,$source_lang;    
    protected static $string = '';    
    protected static $table = NULL;   

PHP代码


/**   
 * 编码互换   
 *   
 * @param string $source   
 * @param string $source_lang  输入编码 'utf-8' or 'gb2312' or 'big5'   
 * @param string $target_lang  输出编码 'utf-8' or 'gb2312' or 'big5'   
 * @return string   
 */   
static public function convert($source,$source_lang,$target_lang='utf-8'){    
    if($source_lang != ''){    
        $source_lang = str_replace(    
            array('gbk','utf8','big-5'),    
            array('gb2312','utf-8','big5'),    
            strtolower($source_lang)    
        );    
    }    
    if($target_lang != ''){    
        $target_lang = str_replace(    
            array('gbk','utf8','big-5'),    
            array('gb2312','utf-8','big5'),    
            strtolower($target_lang)    
        );    
    }    
    if($source_lang == $target_lang||$source == ''){    
        return $source;    
    }    
    $index = $source_lang."_".$target_lang;    
    if(USEEXISTS&&!in_array($index,array('gb2312_big5','big5_gb2312'))){//繁简互换并不是交换字符集编码     
        if(function_exists('iconv')){    
            return iconv($source_lang,$target_lang,$source);    
        }    
        if(function_exists('mb_convert_encoding')){    
            return mb_convert_encoding($source,$target_lang,$source_lang);    
        }    
    }    
    $table = self::loadtable($index);    
    if(!$table){    
        return $source;    
    }    
    self::$string = $source;    
    self::$source_lang = $source_lang;    
    self::$target_lang = $target_lang;    
    if($source_lang=='gb2312'||$source_lang=='big5'){    
        if($target_lang=='utf-8'){    
            self::$table = $table;    
            return self::CHS2UTF8();    
        }    
        if($target_lang=='gb2312'){    
            self::$table = array_flip($table);    
        }else{    
            self::$table = $table;    
        }    
        return self::BIG2GB();    
    }elseif(self::$source_lang=='utf-8'){    
        self::$table = array_flip($table);    
        return self::UTF82CHS();    
    }    
    return NULL;    
}   

PHP代码


/**   
 * js 中的unescape功能   
 *    
 * @param string $str       源字符串   
 * @param string $charset   目标字符串编码 'utf-8' or 'gb2312' or 'big5'   
 * @return string   
 */   
static public function unescape($str,$charset='utf-8'){    
    $charset = strtolower($charset);    
    self::$target_lang = str_replace(    
        array('gbk','utf8','big-5'),    
        array('gb2312','utf-8','big5'),    
        $charset   
    );    
    if(self::$target_lang!='utf-8'&&    
        !(USEEXISTS&&(function_exists('mb_convert_encoding')||function_exists('iconv')))    
    ){    
        self::$table = array_flip(self::loadtable('unescapeto'.$charset));    
    }    
    return preg_replace_callback('/[\\\\|%]u(\w{4})/iU',array('Charset','descape'),$str);    
}   

PHP代码


/**   
 * js 中的escape功能   
 *    
 * @param string $str       源字符串   
 * @param string $charset   源字符串编码 'utf-8' or 'gb2312' or 'big5'   
 * @return string   
 */   
static public function escape($str,$charset='utf-8'){    
    $escaped = '';    
    $charset = strtolower($charset);    
    $charset = str_replace(    
        array('gbk','big-5','utf8'),    
        array('gb2312','big5','utf-8'),    
        $charset   
    );    
    $ulen = strlen($str);    
    if($charset!='utf-8'){    
        $table = self::loadtable($charset.'escape');    
        for($i=0;$i<$ulen;$i++){    
            $c = $str[$i];    
            if(ord($c)>0x80){    
                $bin = $c.$str[$i+1];    
                $i += 1;    
                $escaped .= sprintf('\u%04X',$table[hexdec(bin2hex($bin))]);    
                // bin2hex 返回的是string 必须再转化    
            }else{    
                $escaped .= $c;    
            }    
        }    
        return $escaped;    
    }else{    
        for($i=0;$i<$ulen;$i++){    
            $c = $str[$i];    
            $char = ord($c);    
            switch ($char>>4){    
                case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:    
                    $escaped .= $c;    
                    break;    
                case 12: case 13:    
                    $char = ((($char&0x1F)<<6)|(ord($str[++$i])&0x3F));    
                    $escaped .= sprintf('\u%04X',$char);    
                    break;    
                case 14:    
                    $char = ((($char&0x0F)<<12)|((ord($str[++$i])&0x3F)<<6)|(ord($str[++$i])&0x3F));    
                    $escaped .= sprintf('\u%04X',$char);    
                    break;    
                default:$escaped .= $c;break;    
            }    
            /*$cb = decbin(ord($c));   
            if(strlen($cb)==8){   
                $csize = strpos(decbin(ord($cb)),"0");   
                for($j=0;$j < $csize;$j++){   
                    $i++;   
                    $c .= $str[$i];   
                }   
                $escaped .= sprintf('\u%04X',self::utf82u($c));   
            }else{   
                $escaped .= $c;   
            }*/   
        }    
        return $escaped;    
    }    
}   

PHP代码


/**   
 * json_decode   
 *    
 * @param string $encoded   源字符串   
 * @param string $charset   目标字符串编码 'utf-8' or 'gb2312' or 'big5'   
 * @return string/array/boolean/null   
 */     
static public function jsondecode($encoded,$charset='utf-8'){    
    $encoded = preg_replace('/([\t\b\f\n\r ])*/s','',$encoded);//eat whitespace    
    self::$target_lang = $charset;    
    $c = self::cursor($encoded);    
    switch($c){    
        case '{':return self::parseArray($encoded);    
        case '[':return self::parseArray($encoded,FALSE);    
        case '"':return self::string_find($encoded);    
        case 't':return TRUE;    
        case 'f':return FALSE;    
        case 'n':return NULL;    
        default:return self::num_read($c.$encoded);    
    }    
}   

PHP代码


/**   
 * json_encode   
 *    
 * @param mixvar $var       多类型变量   
 * @param string $charset   默认'utf-8'源变量中字符编码 'utf-8' or 'gb2312' or 'big5'   
 * @return string   
 */   
static public function jsonencode($var,$charset=NULL){    
    if(is_null($charset)){    
        $charset = self::$source_lang;    
    }else{    
        self::$source_lang = $charset;    
    }    
    if(!$charset){    
        $charset = 'utf-8';    
    }    
    switch (gettype($var)){    
        case 'boolean':    
            return $var ? 'true' : 'false';    
        case 'NULL':    
            return 'null';    
        case 'integer':    
            return (int) $var;    
        case 'double':    
        case 'float':    
            return (float) $var;    
        case 'string':    
            $var = strtr($var,array("\r" => '\\r',"\n" => '\\n',"\t" => '\\t',"\b"  => '\\b',    
                "\f" => '\\f','\\' => '\\\\','"' => '\"',"\x08" => '\b',"\x0c" => '\f')   
            );   
            $var = self::escape($var,$charset);   
            return '"'.$var.'"';   
        case 'array':   
            return self::encodearray($var);   
        case 'object':   
            $var = get_object_vars($var);   
            return self::encodearray($var);   
        default:return 'null';    
    }    
}   

PHP代码


    /**   
     * 汉字拼音   
     *   
     * @param string $str   
     * @param string $charset     输入编码 'utf-8' or 'gb2312' or 'big5'   
     * @return string   
     */   
    static public function PinYin($str,$charset='utf-8'){    
        if($charset!='gb2312'){    
            $str = self::convert($str,$charset,'gb2312');    
        }    
        self::$table = include(TABLE_DIR.'./pinyin.php');    
        $gblen = strlen($str);    
        $pin = '';    
        for($i=0;$i<$gblen;$i++){    
            $c = ord($str[$i]);    
            if($c > 0x00A0){    
                $index = 0x10000-($c*0x0100 + ord($str[++$i]));    
                $pin .= self::getPinYin($index);    
            }else{    
                $pin .= $str[$i];    
            }    
        }    
        return trim($pin);    
    }    
    static protected function getPinYin($index){    
        if($index==0x1534) return 'yan';    
        if($index>0x4F5F||$index<0x2807){    
            return '';    
        }    
        if(!self::$table){    
            return '';    
        }    
        while(true){    
            if(!isset(self::$table[$index])){    
                $index += 1;    
                if($index > 0x4F5F){    
                    return '';    
                }    
                continue;    
            }else{    
                return self::$table[$index];    
            }    
        }    
        return '';    
    }    
    static protected function loadtable($index){    
        static $table = array();    
        $tabIndex = '';    
        switch ($index) {    
            case 'gb2312_utf-8':    
            case 'utf-8_gb2312':    
            case 'gb2312escape':    
            case 'unescapetogb2312':    
                $tabIndex = 'gbkutf';    
                break;    
            case 'big5_utf-8':    
            case 'utf-8_big5':    
            case 'big5escape':    
            case 'unescapetobig5':    
                $tabIndex = 'big5utf';    
                break;    
            case 'gb2312_big5':    
            case 'big5_gb2312':    
                $tabIndex = 'gbkbig5';    
                break;    
            default:return NULL;    
        }    
        if(!isset($table[$tabIndex])){    
            $table[$tabIndex] = @include(TABLE_DIR."/".$tabIndex.".php");    
        }    
        return $table[$tabIndex];    
    }    
    static protected function descape($str){    
        $dec = hexdec($str[1]);    
        $str = self::u2utf8($dec);    
        if(self::$target_lang == 'utf-8'){    
            return $str;    
        }    
        if(USEEXISTS){    
            if(function_exists('iconv')){    
                return iconv('utf-8',self::$target_lang,$str);    
            }    
            if(function_exists('mb_convert_encoding')){    
                return mb_convert_encoding($str,self::$target_lang,'utf-8');    
            }    
        }    
        if(isset(self::$table[$dec])){    
            return self::hex2bin(dechex(self::$table[$dec]));    
        }else{    
            return "&#".$dec.";";    
        }    
    }    
    static protected function parseArray($str,$index=TRUE){    
        $result = array();    
        $fp = self::array_open($index,$str);//模拟打开目录    
        while($fp){    
            $type = '';    
            $key = '';    
            $value = self::array_read($fp,$type,$index,$key);//模拟读取目录    
            if($type=='{'){    
                if($index){    
                    $result[$key] = self::parseArray($fp);//递归    
                }else{    
                    $result[] = self::parseArray($fp);    
                }    
            }elseif($type=='['){    
                if($index){    
                    $result[$key] = self::parseArray($fp,FALSE);    
                }else{    
                    $result[] = self::parseArray($fp,FALSE);    
                }    
            }else{    
                if($index){    
                    $result[$key] = $value;    
                }else{    
                    $result[] = $value;    
                }    
            }    
        }    
        return $result;    
    }    
    static protected function array_open($index=TRUE,$string){    
        if($index){    
            $end = '}';    
            $new = '{';    
        }else{    
            $end = ']';    
            $new = '[';    
        }    
        $endpos = self::getpos($string,$end);    
        //用getpos获得$endpos 因为要判断{,},[,]是不是在字符串里面    
        $newpos = self::getpos($string,$new);    
        $fp = '';    
        if($endpos===FALSE){    
            return 'null';    
        }elseif($newpos===FALSE||$newpos>$endpos){    
            $fp = substr($string,0,$endpos);    
            $string = substr($string,$endpos+1);    
            return $fp;    
        }else{// 条件'if($newpos<$endpos)'可以不要了 找到与自己匹对结束符    
            $i = 1;    
            while($i){    
                $endpos = self::getpos($string,$end,$endpos+1);    
                $newpos = self::getpos($string,$new,$endpos+1);    
                if($endpos===FALSE){    
                    return 'null';    
                }elseif($newpos===FALSE){    
                    $i-=1;    
                    continue;    
                }elseif($newpos<$endpos){    
                    $i+=1;    
                    continue;    
                }else{    
                    continue;    
                }    
            }    
            $fp = substr($string,0,$endpos);    
            $string = substr($string,$endpos+1);    
            return $fp;    
        }    
    }    
    static protected function getpos($string,$sign,$offset=0){    
        /**   
         * 判断是否在字符串里面原理:   
         * 取得$offset到$pos($sign)位置之间字符串中'"'个数   
         * 如果为奇数说明在字符串里面 否则在字符串外面   
         */   
        $pos = strpos($string,$sign,$offset);    
        if($pos===FALSE){    
            return FALSE;    
        }    
        $str = substr($string,$offset,$pos-$offset);    
        $arr = array();    
        preg_match_all('/"/',str_replace('\"','',$str),$arr);    
        $in = count($arr[0])%2;    
        if(!$in){    
            return $pos;    
        }    
        do{    
            $next = strpos($string,$sign,$pos+1);    
            if($next===FALSE){    
                return FALSE;    
            }    
            $str = substr($string,$pos,$next-$pos);    
            $arr = array();    
            preg_match_all('/"/',str_replace('\"','',$str),$arr);    
            $in = !(count($arr[0])%2);    
            $pos = $next;    
        }while($in);    
        return $pos;    
    }    
    static protected function array_read($fp,$type,$index=TRUE,$key=null){    
        if($fp[0]==','){    
            self::cursor($fp);//跳过','    
        }    
        if($index){//有索引的数组     
            self::cursor($fp);//跳过 '"'合法    
            $key = self::string_find($fp);//读取索引值    
            self::cursor($fp);//跳过':'    
        }    
        $c = self::cursor($fp);    
        switch($c){    
            case '{':    
                $type='{';    
                return NULL;    
            case '[':    
                $type='[';    
                return NULL;    
            case '"':    
                $rs = self::string_find($fp);    
                $s = self::cursor($fp);//跳过','or '}' or ']' 要求合法    
                if(!($s==','||$s==null)){    
                    die('parse error1!');    
                }    
                return $rs;    
            case 't':    
                if(self::cursor($fp,3)=='rue'){//跳过'rue'    
                    $s = self::cursor($fp);//跳过','or '}' or ']' 要求合法    
                    if(!($s==','||$s==null)){    
                        die("parse error$s!");   
                    }   
                    return TRUE;   
                }else{   
                    die('parse error3!');   
                }   
            case 'f':   
                if(self::cursor($fp,4)=='alse'){   
                    $s = self::cursor($fp);//跳过','or '}' or ']' 要求合法   
                    if(!($s==','||$s==null)){   
                        die('parse error4!');   
                    }   
                    return FALSE;   
                }else{   
                    die('parse error5!');   
                }   
            case 'n':   
                if(self::cursor($fp,3)=='ull'){//跳过'ull'   
                    $s = self::cursor($fp);//跳过','or '}' or ']' 要求合法   
                    if(!($s==','||$s==null)){   
                        die('parse error6!');   
                    }   
                    return NULL;   
                }   
            default:   
                $pos = strpos($fp,',');   
                if($pos===FALSE){   
                    $num = substr($fp,0);   
                    $fp = '';   
                }else{   
                    $num = substr($fp,0,$pos);   
                    $fp = substr($fp,$pos+1);   
                }   
                return self::num_read($c.$num);   
        }   
    }   
    static protected function string_find(&$str){   
        $end = strpos($str,'"',0);    
        while($str[$end-1]=='\\'){   
            $end = strpos($str,'"',$end+1);   
            if($end===FALSE){   
                return 'null';   
            }   
        }   
        $escaped = strtr(   
            rtrim(self::cursor($str,$end+1),'"'),   
            array('\\"' => '"','\\\\'=> '\\','\\/'=> '/','\\b' => chr(8),   
                '\\f'=>chr(12),'\\n'=>chr(10),'\\r'=> chr(13),   
                '\\t'=>chr(9),'\\u'=>'%u'   
            )   
        );   
        return self::unescape($escaped,self::$target_lang);   
    }   
    static protected function num_read($str){   
        $matches = array();   
        if (preg_match('/-?([0-9])*(\.[0-9]*)?((e|E)((-|\+)?)[0-9]+)?/s',$str,$matches)){   
            $num = $matches[0];   
            $val   = intval($num);   
            $fval  = floatval($num);   
            $value = $val?$val:$fval;   
            return $value;   
        }else{   
            return NULL;   
        }   
    }   
    static protected function cursor(&$str,$shift=1){   
        $get = substr($str,0,$shift);   
        $str = substr($str,$shift);   
        return $get;   
    }   
    static protected function encodearray($array){   
        if(!$array){   
            return 'null';   
        }   
        if((array_keys($array)!==range(0,sizeof($array)- 1))){   
            $rs = '';   
            foreach($array as $key=>$value){   
                $rs .= ','.self::jsonencode(strval($key)).':';   
                if(is_array($value)){   
                    $rs .= self::encodearray($value);   
                }else{   
                    $rs .= self::jsonencode($value);   
                }   
            }   
            $rs = '{'.ltrim($rs,',').'}';   
            return $rs;   
        }else{   
            $rs = '';   
            foreach($array as $value){   
                if(is_array($value)){   
                    $rs .= ','.self::encodearray($value);   
                }else{   
                    $rs .= ','.self::jsonencode($value);   
                }   
            }   
            $rs = '['.ltrim($rs,',').']';   
            return $rs;   
        }   
    }   
    static protected function CHS2UTF8(){   
        $utf8 = "";   
        while(self::$string){   
            if (ord(self::$string[0]) > 0x80){   
                $bin = substr(self::$string,0,2);   
                $utf8 .= self::u2utf8(self::$table[hexdec(bin2hex($bin))]);   
                self::$string = substr(self::$string,2);   
            }else{   
                $utf8 .= self::$string[0];   
                self::$string = substr(self::$string,1);   
            }   
        }   
        return $utf8;   
    }   
    static protected function UTF82CHS(){   
        $chs  = "";   
        $ulen = strlen(self::$string);   
        for($i=0;$i<$ulen;$i++){   
            $c = self::$string[$i];   
            $char = ord($c);   
            switch ($char>>4){   
                case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7:   
                    $chs .= $c;   
                    break;   
                case 12: case 13:   
                    $char = self::$table[(($char&0x1F)<<6)|(ord(self::$string[++$i])&0x3F)];   
                    $chs .= self::hex2bin(dechex($char));   
                    break;   
                case 14:   
                    $char = self::$table[   
                        (($char&0x0F)<<12)   
                        |((ord(self::$string[++$i])&0x3F)<<6)   
                        |(ord(self::$string[++$i])& 0x3F)   
                    ];   
                    $chs .= self::hex2bin(dechex($char));   
                    break;   
                default:$chs .= $c;break;   
            }   
        }   
        /*for($i=0;$i<$ulen;$i++){   
            $c = self::$string[$i];   
            $cb = decbin(ord($c));   
            if(strlen($cb)==8){   
                $csize = strpos(decbin(ord($cb)),"0");   
                for($j=0;$j < $csize;$j++){   
                    $i++;   
                    $c .= self::$string[$i];   
                }   
                $c = self::utf82u($c);   
                if(isset(self::$table[$c])){   
                    $chs .= self::hex2bin(dechex(self::$table[$c]));   
                }else{    
                    $chs .= "&#".$c.";";   
                }   
            }else{   
                $chs .= $c;   
            }   
        }*/   
        return trim($chs);   
    }   
    static protected function BIG2GB(){   
        $ret = '';   
        while(self::$string){   
            if(ord(self::$string[0]) > 0x80){   
                $index = hexdec(bin2hex(self::$string[0].self::$string[1]));   
                $value = self::$table[$index];   
                $ret .= self::hex2bin(dechex($value));   
                self::$string = substr(self::$string,2);   
            }else{   
                $ret .= self::$string[0];   
                self::$string = substr(self::$string,1);   
            }   
        }   
        return $ret;   
    }   
    static protected function u2utf8($c){   
        $str = '';   
        if ($c < 0x80){   
            $str.= chr($c);   
        }elseif($c < 0x800){   
            $str.= chr(0xC0 | $c>>6);   
            $str.= chr(0x80 | $c & 0x3F);   
        }elseif($c < 0x10000){   
            $str.= chr(0xE0 | $c>>12);   
            $str.= chr(0x80 | $c>>6 & 0x3F);   
            $str.= chr(0x80 | $c & 0x3F);   
        }elseif($c < 0x200000){   
            $str.= chr(0xF0 | $c>>18);   
            $str.= chr(0x80 | $c>>12 & 0x3F);   
            $str.= chr(0x80 | $c>>6 & 0x3F);   
            $str.= chr(0x80 | $c & 0x3F);   
        }   
        return $str;   
    }   
    static protected function utf82u($c){   
        switch(strlen($c)) {   
            case 1:   
                return ord($c);   
                break;   
            case 2:   
                $n  = (ord($c[0]) & 0x3f) << 6;   
                $n += ord($c[1]) & 0x3f;   
                return $n;   
                break;   
            case 3:   
                $n  = (ord($c[0]) & 0x1f) << 12;   
                $n += (ord($c[1]) & 0x3f) << 6;   
                $n += ord($c[2]) & 0x3f;   
                return $n;   
                break;   
            case 4:   
                $n  = (ord($c[0]) & 0x0f) << 18;   
                $n += (ord($c[1]) & 0x3f) << 12;   
                $n += (ord($c[2]) & 0x3f) << 6;   
                $n += ord($c[3]) & 0x3f;   
                return $n;   
                break;   
            default:return '';break;   
        }   
    }   
    static protected function hex2bin($hexdata){   
        $bindata = '';    
        for ($i = 0, $count = strlen($hexdata); $i < $count; $i += 2){    
            $bindata .= chr(hexdec($hexdata[$i].$hexdata[$i + 1]));    
        }    
        return $bindata;    
    }    
}

 

分享到:
评论

相关推荐

    新版PHP双码率视频云转码服务系统源码 m3u8切片秒切html5播放器 全开源

    新版PHP双码率视频云转码服务系统源码 m3u8切片秒切html5播放器 全开源 PHP双码率视频云转码服务系统源码 m3u8切片秒切 版本特点: 1、修正了双码率无法转码、切片问题,优化“秒切功能”。 2、修正了四个水印无法...

    PHP云转码系统源码.rar

    【PHP云转码系统源码】是一个用于视频转码服务的解决方案,主要针对云环境中的视频处理需求。这个系统的核心功能是将不同格式的视频文件转换为适应多种设备和网络条件的m3u8格式,同时支持m3u8文件的加密,确保视频...

    PHP双码率视频云转码服务系统源码 m3u8切片秒切

    PHP 双码率视频云转码服务系统源码 m3u8 切片秒切 源码特点: 1、修正了双码率无法转码、切片问题,优化“秒切功能”。 2、修正了四个水印无法开启,或开启后无法转码的问题。 3、优化了代码,在开启双码率的...

    php云切片程序转码 m3u8生成程序开源源码 附教程.zip

    php云切片程序转码 | m3u8生成程序开源源码 附教程 程序环境:Linux+Apache+PHP7.2+Mysql5.7 相信你也想分享自己的视频但是由于视频文件太大,服务器带宽太小或者苦于大平台过审需求导致分享困难。 现在,解决...

    PHP 双码率视频云转码服务系统源码 m3u8切片秒切.zip

    PHP双码率视频云转码服务系统源码 m3u8切片秒切 源码特点: 1、修正了双码率无法转码、切片问题,优化“秒切功能”。 2、修正了四个水印无法开启,或开启后无法转码的问题。 3、优化了代码,在开启双码率的情况...

    2020最新云转码(非授权版)全开源一键安装

    `exec`和`shell_exec`允许PHP脚本执行操作系统命令,这对于云转码这类需要调用外部程序(如FFmpeg)的任务来说是必需的。因此,为了使转码功能正常工作,用户需要修改PHP的配置,取消对这两个函数的禁用。 在使用非...

    基于PHP的中文域名punycode转码工具源码.zip

    基于PHP的中文域名punycode转码工具源码.zip 基于PHP的中文域名punycode转码工具源码.zip 基于PHP的中文域名punycode转码工具源码.zip 基于PHP的中文域名punycode转码工具源码.zip 基于PHP的中文域名punycode转码...

    PHP双码率视频云转码服务系统源码 m3u8切片秒切.zip

    1、修正了双码率无法转码、切片问题,优化“秒切功能”。 2、修正了四个水印无法开启,或开启后无法转码的问题。 3、优化了代码,在开启双码率的情况下,可实现极速转码、切片。 4、修正了防盗功能,防盗能力...

    phpcms视频上传转码字段

    后端则使用PHP进行文件接收,通过PHP的`move_uploaded_file`函数将文件移动到服务器的指定目录,并记录相关信息如文件名、大小、路径等。 2. 转码服务 视频转码是指将原始视频文件转换为适应不同设备、网络环境的...

    PHP双码率视频云转码服务系统源码 m3u8切片秒切.rar

    1、修正了双码率无法转码、切片问题,优化“秒切功能”。 2、修正了四个水印无法开启,或开启后无法转码的问题。 3、优化了代码,在开启双码率的情况下,可实现极速转码、切片。 4、修正了防盗功能,防盗能力进一步...

    基于PHP的中文域名punycode转码工具.zip

    标题"基于PHP的中文域名punycode转码工具.zip"暗示了一个使用PHP编程语言开发的工具,该工具用于处理中文域名的Punycode转换。PHP是一种广泛使用的服务器端脚本语言,尤其在网页开发中非常流行。这个工具可能包含一...

    基于PHP的中文域名转码系统HTML5版源码.zip

    基于PHP的中文域名转码系统 基于PHP的中文域名转码系统HTML5版源码.zip 基于PHP的中文域名转码系统HTML5版源码.zip 基于PHP的中文域名转码系统HTML5版源码.zip 基于PHP的中文域名转码系统HTML5版源码.zip 基于PHP的...

    IDN.rar_ punycode a_PunyCode_Punycode php_php punycode_转码

    通常,这样的文件会包含PHP函数或者类,它们接收一个包含非ASCII字符的域名,然后调用内置的函数或者自定义逻辑来完成Punycode的编码和解码。 在实际应用中,使用Punycode转换对于处理IDN非常重要,因为这使得全球...

    2022 php云切片程序转码 - m3u8生成程序开源源码 附教程

    【标题】"2022 php云切片程序转码 - m3u8生成程序开源源码 附教程" 涉及的核心知识点是PHP编程语言在云视频处理中的应用,特别是针对视频切片和m3u8播放列表生成的技术。PHP是一种广泛用于Web开发的服务器端脚本语言...

    基于PHP的中文域名转码系统HTML5版v1.2源码.zip

    基于PHP的中文域名转码系统HTML5版v1.2源码.zip 基于PHP的中文域名转码系统HTML5版v1.2源码.zip 基于PHP的中文域名转码系统HTML5版v1.2源码.zip 基于PHP的中文域名转码系统HTML5版v1.2源码.zip 基于PHP的中文域名...

    音频转码,pcm 转 wav 格式

    通过理解这两种音频格式的特性,以及PHP转码的基本流程,我们可以有效地实现音频文件的兼容性转换。使用提供的“PcmToWav-master”资源,开发者可以进一步研究和定制自己的音频转码解决方案,以适应特定的项目需求。

    2023最新MuX云切片转码系统源码-前端易语言+后端PHP.zip

    本后端源码为PHP源码(代码全开源 无加密),前端为易语言源码(含模块)方便各种二开! 前端全新UI,使用EXUI插件;支持在线支付,对接支付宝当面付;TS图床加密播放,同步苹果cms 本前端源码为易语言源码(含模块),后端...

    PHP实例开发源码-php 中文域名punycode转码工具.zip

    PHP实例开发源码—php 中文域名punycode转码工具.zip PHP实例开发源码—php 中文域名punycode转码工具.zip PHP实例开发源码—php 中文域名punycode转码工具.zip

    PHP实现ffmpeg视频压缩转码截图

    PHP实现ffmpeg视频压缩转码截图

Global site tag (gtag.js) - Google Analytics