<?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);
Warning: Undefined variable $accountNumber in /in/DAOgo on line 11
Deprecated: strrev(): Passing null to parameter #1 ($string) of type string is deprecated in /in/DAOgo on line 11
Warning: Undefined variable $accountNumber in /in/DAOgo on line 13
Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /in/DAOgo on line 13
123usMKXDLBHKS
Output for 8.0.0 - 8.0.30
Warning: Undefined variable $accountNumber in /in/DAOgo on line 11
Warning: Undefined variable $accountNumber in /in/DAOgo on line 13
123usMKXDLBHKS