Moin!
Perfekt danke,
konnte es nun so lösen:
$sBetrag = ltrim($order_total_display, '0');
$sBetrag = strtr($sBetrag, array(',' => '.', ' ' => '',));
$sBetrag = preg_replace('![^0-9.]!', '', $sBetrag);
$gesamtbetrag = number_format($sBetrag, 2);
Nicht perfekt.
Versuche es mal mit '€ 1.234,56' und dann mit '€ 1,234.56'
Mein Tipp wäre:
<?php
define('NL', "\n");
print myBetrag('€ 1.234,56').NL;
print myBetrag('€ 1,234.56').NL;
print myBetrag('€ 12.34').NL;
print myBetrag('12,05').NL;
print myBetrag('12').NL;
function myBetrag($s) {
$s = str_replace('.', ',', $s);
$s = preg_replace('![^0-9,]!', '', $s);
$s = strrev ($s);
$a = explode(',', $s, 2);
if ( ! isset($a[1]) ) { $a[1]=$a[0]; $a[0]=0; }
$a[0] = strrev ($a[0]);
$a[1] = strrev ($a[1]);
$a[1] = str_replace(',', '', $a[1]);
$s = $a[1] . '.' . $a[0];
return number_format($s, 2, ',', '.');
}
?>
Ich hoffe, ich habe das so primitiv notiert, dass sich Kommentare erübrigen.
Ergebnisse:
1.234,56
1.234,56
12,34
12,05
12,00
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix