Moin!
Das Problem ist nicht wirklich abschließend zu lösen. Ich stelle einen Versuch zur Diskussion:
<?php
echo german_str_to_float('2 Euro', 2, 3), "\n";
function german_str_to_float ($str, $min=false, $max=false) {
$float = floatval( str_replace( ',', '.', trim( $str ) ) );
if ( is_numeric($float) ) {
if ( false !== $max ) {
if ( $min >= $max ) {
#$err='Ftal: Beim Funktionsaufruf von german_str_to_float wurde Minimum >= Maximum übergeben.';
#$errNr = $errNr + 1;
#errType = FATAL_ERROR
#DEIN_ERROR_HANDLER ($errStr, errType, $errNr)
return false;
} else {
if ( $float >= $min && $float <= $max ) {
return $float;
} else {
#$err='Fatal: Beim Funktionsaufruf von german_str_to_float wurde groesseres Minimum als Maximum übergeben.';
#$errNr = $errNr + 2;
#errType = FATAL_ERROR
#DEIN_ERROR_HANDLER ($errStr, errType, $errNr)
return false;
}
}
}
return $float;
} else {
return false;
}
}
Jörg Reinholz