Onbekend |
|
// Functie om een getal naar een letter te zetten en terug
function GetNumAlf($sInput)
{
// Array aanmaken met alles letters
$aLetters = Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
// Controleren of de input een getal is
If(Is_Numeric($sInput))
{
// De letter die bij het getal hoort terug geven
return $aLetters[$sInput];
}
Else
{
// De array omgooien
$aLetters = Array_Flip($aLetters);
// Het getal die bij de letter hoort terug geven
return $aLetters[$sInput];
}
}
// Het aantal 0-en controleren en eventueel bijvoegen
function CheckNulls($sInput)
{
// Aantal tekens tellen
$iStrLenInput = StrLen($sInput);
// Controleren of het aantal tekens kleiner is dan 10
If(StrLen($sInput) < 10)
{
// Een for-loop van 10 tot het aantal tekens
For($iNull = 10; $iNull > $iStrLenInput; $iNull--)
{
// Een 0 erbij zetten
$sInput = '0'.$sInput;
}
}
// Terug geven
return $sInput;
}
// Functie waar alles om draait, het controleren
function Check($sId)
{
// Controleren of 9999999999 al is bereikt
If(SubStr($sId, 1) == 9999999999)
{
// Gooi hem door de GetNumAlf functie om de volgende letter te bepalen
return GetNumAlf(GetNumAlf($sId{0}) + 1).'0000000000';
}
Else
{
// Tel 1 bij het getal op, en door de CheckNulls halen
return $sId{0}.CheckNulls(SubStr($sId, 1) + 1);
}
}
// Voorbeelden
echo Check('E9999999999').'<br />';
echo Check('D0000283804');
// Functie om een getal naar een letter te zetten en terug function GetNumAlf($sInput) { // Array aanmaken met alles letters $aLetters = Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); // Controleren of de input een getal is { // De letter die bij het getal hoort terug geven return $aLetters[$sInput]; } Else { // De array omgooien // Het getal die bij de letter hoort terug geven return $aLetters[$sInput]; } } // Het aantal 0-en controleren en eventueel bijvoegen function CheckNulls($sInput) { // Aantal tekens tellen $iStrLenInput = StrLen($sInput); // Controleren of het aantal tekens kleiner is dan 10 { // Een for-loop van 10 tot het aantal tekens For($iNull = 10; $iNull > $iStrLenInput; $iNull--) { // Een 0 erbij zetten $sInput = '0'.$sInput; } } // Terug geven return $sInput; } // Functie waar alles om draait, het controleren function Check($sId) { // Controleren of 9999999999 al is bereikt If(SubStr($sId, 1) == 9999999999) { // Gooi hem door de GetNumAlf functie om de volgende letter te bepalen return GetNumAlf(GetNumAlf($sId{0}) + 1).'0000000000'; } Else { // Tel 1 bij het getal op, en door de CheckNulls halen return $sId{0}.CheckNulls (SubStr($sId, 1) + 1); } } // Voorbeelden echo Check ('E9999999999').'<br />'; echo Check ('D0000283804');
astublief
Edit
Wat commentaar erbij gezet
Ervoor gezorgt dat het aantal nullen gewoon weer ervoor komt. Niet m`n mooiste script, maar het werkt. Het moet denk ik wel anders kunnen maar kom er op dit moment niet op.
Maar het werkt.
PS: De CheckNulls functie kan inprincipe in de Check functie ingebouwd worden, maar ik vind functies nu eenmaal handig
Edit
En? :P |