3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $strNewAcctNum = '123us'; $strCode1 = '-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; $strCode2 = 'TMGKRLMKFDPRSKVQXZBSKLKVWSXMSDLHQPFVP'; $iKeyLen = strlen($strCode2); //Step 1 - take the last 4 characters and the first 4 characters and pad with zeros //FAL 2008-05-02 for account numbers that are less than 4 characters, the below was returning as null as opposed to all N characters. //$strTempAcctNum = substr($accountNumber,-4); $strTempAcctNum = strrev(substr(strrev($accountNumber),0,4)); $strTempAcctNum .= substr($accountNumber,0,4); $strTempAcctNum = substr($strTempAcctNum.'00000000',0,8); $sumPos = 0; //now loop through each character and replace with a new character from the Code2 string for ($i = 0; $i < strlen($strTempAcctNum); $i++) { $strChar = substr($strTempAcctNum,$i,1); $pos = strpos($strCode1, $strChar); if ($pos === false) $pos= 0; $pos = ($pos + $i * 13 ) % $iKeyLen; $sumPos += $pos; $strNewChar = substr($strCode2,$pos,1); $strNewAcctNum.=$strNewChar ; } echo $strNewAcctNum. substr($strCode2, $sumPos % $iKeyLen,1);
Output for 5.0.4 - 7.1.0
Notice: Undefined variable: accountNumber in /in/DAOgo on line 11 Notice: Undefined variable: accountNumber in /in/DAOgo on line 13 123usMKXDLBHKS
Output for 4.3.0 - 5.0.3
Notice: Undefined variable: accountNumber in /in/DAOgo on line 11 Notice: Undefined variable: accountNumber in /in/DAOgo on line 13 123usMKXDLBHKS