note 44859 deleted from function.is-numeric by aidan
| From: | aidan@php.net | Date: | Wed, 18 Aug 2004 11:05:05 +0000 |
| Subject: | note 44859 deleted from function.is-numeric by aidan | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-74874@lists.php.net to get a copy of this message | ||
Note Submitter:
----
Heres a shorter version of the fat thumb example given earlier.
<?php
function numpass_filter($userString)
{
$number = eregi_replace("[^0-9.]", "", $userString); // remove non number
parts
$number_parts=explode(".", $number, 3); // split value by . and limit it to 3 parts
(discard 3rd)
// reassemble the two parts and pad the decimal so we get .00 or .50
return $number_parts[0] . "." . str_pad($number_parts[1], 2, "0",
STR_PAD_LEFT);
}
?>
and heres a complete text to number function for you:-
<?php
function db_text_to_number($value, $allow_decimals=TRUE, $allow_exponents=FALSE)
{
// remove unwanted characters from text to allow it to be put into a database as a number without
errors
// remove anything thats NOT related to a standard number
$value=ereg_replace("[^0-9/./+E/-]", "", $value); // remove non number
characters
$value=ereg_replace("^[^0-9/-]+([0-9])", "\\1", $value); // leading characters
that are not - or 0-9
$value=ereg_replace("([/.])([^/.]*)([/.])(.*)$", "\\1\\2", $value); //remove .
beyond first
$value=ereg_replace("([E])([^E]*)([E])(.*)$", "\\1\\2", $value); //remove E
beyond first
$value=ereg_replace("([/+])([^/+]*)([/+])(.*)$", "\\1\\2", $value); //remove +
beyond first
$value=ereg_replace("([/-])([^/-]*)([/-])([^/-]*)([/-])(.*)$", "\\1\\2\\3\\4",
$value); //remove - beyond second
if(!ereg("E/-", $value))
{
$value=ereg_replace("E/-([^/-]*)([/-])(.*)$", "E-\\1", $value); //remove -
beyond first
}
//remove exponent values eg 343E+34 34E-34
if(!$allow_exponents)
{
$value=ereg_replace("E.*$", "", $value); //remove from E
}
// remove trailing decimals to make this an Integer
if(!$allow_decimals)
{
$value=ereg_replace("[/.].*$", "", $value);
}
if( (empty($value)) || ($value=="-") )
{
return 0;
}
return $value;
}
?>