3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php echo alphaID('B3333V', true, 6, '3gmgkvj0jw8hrkcnu'); function alphaID($in, $to_num = false, $pad_up = false, $pass_key = null) { $out = ''; $index = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $base = strlen($index); if ($pass_key !== null) { // Although this function's purpose is to just make the // ID short - and not so much secure, // with this patch by Simon Franz (http://blog.snaky.org/) // you can optionally supply a password to make it harder // to calculate the corresponding numeric ID $i = str_split($index); $pass_hash = hash('sha256',$pass_key); $pass_hash = (strlen($pass_hash) < strlen($index) ? hash('sha512', $pass_key) : $pass_hash); $pass_hash = substr($pass_hash, 0, strlen($index)); $p = str_split($pass_hash); array_multisort($p, SORT_DESC, $i); $index = implode($i); } if ($to_num) { // Digital number <<-- alphabet letter code $len = strlen($in) - 1; for ($t = $len; $t >= 0; $t--) { $bcp = bcpow($base, $len - $t); $out = $out + strpos($index, substr($in, $t, 1)) * $bcp; } if (is_numeric($pad_up)) { $pad_up--; if ($pad_up > 0) { $out -= pow($base, $pad_up); } } } else { // Digital number -->> alphabet letter code if (is_numeric($pad_up)) { $pad_up--; if ($pad_up > 0) { $in += pow($base, $pad_up); } } for ($t = ($in != 0 ? floor(log($in, $base)) : 0); $t >= 0; $t--) { $bcp = bcpow($base, $t); $a = floor($in / $bcp) % $base; $out = $out . substr($index, $a, 1); $in = $in - ($a * $bcp); } } return $out; }
Output for 7.0.5, 7.3.0alpha1
Fatal error: Uncaught Error: Call to undefined function bcpow() in /in/fKK50:27 Stack trace: #0 /in/fKK50(3): alphaID('B3333V', true, 6, '3gmgkvj0jw8hrkc...') #1 {main} thrown in /in/fKK50 on line 27
Process exited with code 255.
Output for 7.1.0 - 7.2.6
Warning: A non-numeric value encountered in /in/fKK50 on line 28 7
Output for 5.3.22 - 5.5.28, 5.5.31 - 5.5.33, 5.5.35 - 5.6.12, 5.6.16 - 5.6.19, 5.6.21 - 7.0.4, 7.0.6 - 7.0.20
7
Output for 5.5.29 - 5.5.30, 5.5.34, 5.6.13 - 5.6.15, 5.6.20
Fatal error: Call to undefined function bcpow() in /in/fKK50 on line 27
Process exited with code 255.