3v4l.org

run code in 300+ PHP versions simultaneously
<?php function b62e($str) { if(mb_check_encoding($str, 'ASCII')) { $out = ''; $len = strlen($str); for($i=0; $i<$len; $i+=8) { $chunk = substr($str, $i, 8); $outlen = ceil( strlen($chunk)*8/6 );// 8bit/char in, 6bits/char out, round up $hex = bin2hex($chunk);// gmp won't convert from binary, so go via hex $raw = gmp_strval(gmp_init(ltrim($hex, '0'), 16), 62);// gmp doesn't like leading 0s $out .= str_pad($raw, $outlen, '0', STR_PAD_LEFT); } return $out; } return false;// unicode chars not supported } function b62d($str) { if(mb_check_encoding($str, 'ASCII')) { $out = ''; $len = strlen($str); for ($i=0; $i<$len; $i+=11) { $chunk = substr($str, $i, 11); $outlen = floor( strlen($chunk)*6/8 ); //6bit/char in, 8bits/char out, round down $raw = gmp_strval(gmp_init(ltrim($chunk, '0'), 62), 16); //gmp doesn't like leading 0s $pad = str_pad($raw, $outlen * 2, '0', STR_PAD_LEFT); //double output length as as we're going via hex (4bits/char) $out .= pack('H*', $pad); //same as hex2bin } return $out; } return false;// unicode chars not supported } function obf62rep($which){// make array before translate string $rep = []; $str1 = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $str2 = 'GHIJKLMNqrstuvwx01OPQRSTUVWXYZhijklmnop23456789abcdefgyzABCDEF'; if($which){// while obfuscate from-->to $fr = str_split($str1); $to = $str2; }else{// while de-obfuscate to-->from $fr = str_split($str2); $to = $str1; } foreach($fr as $k=>$v){// make array tr-->to $rep[$v] = $to[$k]; } return $rep; } function obf62e($str){return strtr($str, obf62rep(1));}// translate string = obfuscate function obf62d($str){return strtr($str, obf62rep(0));}// translate back = deobfuscate function ob62e($str){return obf62e(b62e($str));}// encode base62 + obfuscate function ob62d($str){return b62d(obf62d($str));}// decode base62 + deobfuscate define('TAB',"\t--->\t"); for($i=0; $i<17; $i++){ $encoded = b62e($i); $encoded_obf= obf62e($encoded); $decoded_obf= obf62d($encoded_obf); $decoded = b62d($decoded_obf); echo $i.TAB.$encoded.TAB.$encoded_obf.TAB.$decoded_obf.TAB.$decoded.PHP_EOL; } //

preferences:
163.38 ms | 415 KiB | 5 Q