|
|
Joined: Dec 1999
Posts: 30,867
Master Elite Member
|
function AsInteger_String_ASCII($MyString, $Default = 0) {
$X = ''; $RetDefault = (integer) $Default;
$eCount = strlen($MyString);
if ($eCount == 0) { return (integer) 0; }
for ($C = 0; $C < $eCount; $C++) {
if (strpos('0123456789.-+', substr($MyString, $C, 1)) === False) { return $RetDefault; }
if (substr($MyString, $C, 1) == '.' && strpos($X, '.') !== False) { return $RetDefault; }
if (substr($MyString, $C, 1) == '-' && $C > 0) { return $RetDefault; }
if (substr($MyString, $C, 1) == '+' && $C > 0) { return $RetDefault; }
$X = $X . substr($MyString, $C, 1);
}
if (strpos($X, '.') !== False) { $X = substr($X, 0, strpos($X, '.')); }
$Y = ''; $FoundNZ = False; $eCount = strlen($X); for ($C = 0; $C < $eCount; $C++) {
$cChar = substr($X, $C, 1);
if ($FoundNZ == True) { $Y .= $cChar; }
else {
if (strpos('123456789+-', $cChar) !== False) {
$Y .= $cChar; if (strpos('123456789', $cChar) !== False) { $FoundNZ = True; }
}
}
}
$X = $Y; if (strlen($X) == 0 || $X == '-' || $X == '+') { return (integer) 0; }
if (strlen($X) > 12) { return $RetDefault; } if ((float) $X < -2147483648 || (float) $X > 2147483647) { return $RetDefault; } return (integer) $X;
}
|
|
|
|
|