Hallo,
folgendes Grundproblem:
--
Ich habe ein Text-Eingabefeld für z.b. Einkaufspreis
Die Eingabe des Users koennte wie folgt aussehen:
- 123
- 123,99
- 1.234
- 1234
- 1.234,99
- 1234,99
soviel zu den moeglichen Eingaben des Users.
Da ich das ganze in MySQL speichere sollte der String in das MySQL-Float format umformatiert werden
(Format: XXXXX.YY)
Ich habe jetzt ne Weile rumexperimentiert, aber eine Loesung die Sauber funktioniert und alle Fälle abdeckt kam dabie nicht raus (mein ansatz ging über COUNT des Strings sowie ein geschachteltes EXPLODE)
So, jetzt die Frage:
--
wie loese ich sowas am besten, elegantesten ?
Gruss
fidel_
ok, ich koennte es so machen, aber der ansatz wirkt auf mich etwas zu kompliziert
folgendes Grundproblem:
--
Ich habe ein Text-Eingabefeld für z.b. Einkaufspreis
Die Eingabe des Users koennte wie folgt aussehen:
- 123
- 123,99
- 1.234
- 1234
- 1.234,99
- 1234,99
soviel zu den moeglichen Eingaben des Users.
Da ich das ganze in MySQL speichere sollte der String in das MySQL-Float format umformatiert werden
(Format: XXXXX.YY)
Ich habe jetzt ne Weile rumexperimentiert, aber eine Loesung die Sauber funktioniert und alle Fälle abdeckt kam dabie nicht raus (mein ansatz ging über COUNT des Strings sowie ein geschachteltes EXPLODE)
So, jetzt die Frage:
--
wie loese ich sowas am besten, elegantesten ?
Gruss
fidel_
ok, ich koennte es so machen, aber der ansatz wirkt auf mich etwas zu kompliziert
PHP-Code:
<?php
// Mein test-string
$text = "1.234,99";
// gib Basis aus:
echo $text."
";
// Check ok ein Punkt enthalten ist
$check = strpos ($text, ".");
if ($check == false)
{
// Kein Punkt
// ok wir haben einen String ohne Tausender Punkt
//
//Check ob Komma vorhanden
$check = strpos ($text, ",");
if ($check == false)
{
// kein Komma
echo $text."
";
}
else
{
// Komma
// nun Komma durch Punkt ersetzten
$text_array=explode(",", $text);
$text =$text_array[0].".".$text_array[1];
echo $text."
";
}
}
else
{
// Treffer
// Wir werden den Punkt los
$text = str_replace(".", "", $text);
echo $text."
";
// ok wir haben einen String ohne Tausender Punkt
//
//
// check ob Komma
$check = strpos ($text, ",");
if ($check == false)
{
// kein Komma
echo $text."
";
}
else
{
// Komma
// nun Komma durch Punkt ersetzten
$text_array=explode(",", $text);
$text =$text_array[0].".".$text_array[1];
echo $text."
";
}
}
Kommentar