Beste,

Is het mogelijk om een input d.m.v. php te laten omvormen?
De volgende situatie is van toepassing:

Een input veld waar ik bijvoorbeeld 10,95 invul.
Dit moet eigenlijk 1095 worden.
de komma verdwijnt dus.

150 word dan 15000
122.95 word dan 12295
enz. enz.

Kan ik dit maken met number_format?

Gr. Jop
str_replace(',', '.', $getal) * 100

<?php
foreach(array('10,95','150','122.95') as $getal)
echo str_replace(',', '.', $getal) * 100 . '<br/>';
?>
Is het niet gemakkelijker om
str_replace(",", "", $waarde)
te doen?
@Aar

dan wordt 150 niet spontaan 15000
Bedankt voor t meedenken.
zoals je ziet worden alle bedragen naar centen berekend.
€1,00 is 100 cent. Ik moet dus alleen de komma zien te verwijderen in de variable.
De variable word gevuld bij de submit.
Zelf dacht ik aan de number_format en dan geen komma te plaatsen.

<?php
    $amount =  number_format($_POST['amount'], 2, ',', '.'); 
?>

Natuurlijk werkt het bovenstaande niet maar is puur om te laten zien wat ik zelf dacht.
Alleen moet ik even kijken hoe ik de komma weg laat in de nmber format.

Gr. Jop
Beste Ozzie,


Bedankt dit is inderdaad wat ik zocht. Ben nog niet bekend met de functio explode.
Ga hier eens induiken :-)

Gr. Jop

Is mijn regeltje niet veel simpeler?
>> Is mijn regeltje niet veel simpeler?

Aha, ik ging er vanuit dat er nog geen werkende oplossing was. Jouw oplossing lijkt me dan prima.
Tenzij iemand de duizend-tal-scheidingen typt:

Griekenland kreeg 285.000.000.000,00 euro van Nederland.
http://php.net/numberformatter

vereist wel dat intl bij jouw php-versie actief is.

<?php
/**
* Convert a "dutch" number to float
* ie: 1.123.000,99 to 1123000.99
* or 12,95 to 12.95
* will leave 1.234 or 1.234.000 alone
*
* @param string $str
* @return float
*/
public static function ConvertNumber($str)
{
// only if input is of "european" format
if(strpos($str, ',') !== false || substr_count($str, '.') > 1 || strpos($str, '.') < strlen($str) - 3) {

$fmt = new NumberFormatter('nl_NL', NumberFormatter::DECIMAL);

if($return = $fmt->parse($str)) {

return $return;
}
}
if(is_numeric($str)) {
return $str;
}
else {
// niet gelukt? alles behalve cijfers eruit
return preg_replace('#[^\d]#', '', $str);
}
}
?>

Reageren