| Zeile 3: |
Das Copyrigt. Wird nicht für die Funktion benötigt, aber wäre anständig, wenn Sie es drinn lassen. |
| Zeile 4: |
Version. Wird nicht für die Funktion benötigt, ist nur zur Info. |
| Zeile 7-11: |
Ist es ein negativer Wert ? Dann merken wir uns
das, aber entfernen vorläufig das Minus-Zeichen. um später bei Zeile 14
den Tippfaulen auch bei negativen Zahlen zu helfen. |
| Zeile 13: |
Manche trennen Zahlen durch ein Komma, andere
lieber durch Punkte ...
Komma(s) werden daher für die weitere Verarbeitung in Punkte wandeln. |
| Zeile 14: |
Gibt es am ANFANG einen "." ohne
vorangehende Zahl, so entferne den und füge dafür ein "0." ein
(Tippfaule Zeitgenossen , ich zum Beispiel, schreiben lieber .15
.als 0.15 ) |
| Zeile 15: |
Gibt es am ENDE des Strings einen "." ohne
weitere Zahlen, so ist der überflüssig und kann entfernt werden. |
| Zeile 16: |
Zerstückle die Zahl beim Punkt in eine Array. |
| Zeile 18 - 24: |
Im Idealfall haben wir nun eine Zahl mit nur
einem Punkt.
Doch müssen wir nun einen möglicher Sonderfall bei berücksichtigen:
Wurden mehr als 1 Punkt erkannt,
- weil durch die Umwandlung von Kommas in Punkte 2 Punkte entstanden
sind
- oder einfach nur , weil ein schlecht geschulter Benutzer die Zahl
"leserlicher" gestalten wollte, indem er Beispielsweise
1000er Beträge auch durch einen Punkt optisch trennen wollte ...
... so muss nun dieser Teil wieder als Ganzes zusammengefügt werden.
Es ist ja unser ganzzahliger Bereich, der unglücklicher Weise in mehrere
Teile zerlegt wurde.
In Zeile 15 werden die einzelnen Fragmente in einer neuen Array
gesammelt und anschliessend in Zeile 17 wieder zusammengefügt. |
| Zeile 24 - 23: |
Es kann ja auch sein, dass nur ein ganzzahliger
Betrag eingegeben wurde. Die Array besteht dadurch nur aus In dem Fall
müssen die Variabeln entsprechend beschrieben werden. |
| Zeile 32 - 33: |
Alles, was keine Zahl ist, soll entfernt
werden. |
| Zeile25: |
Ursprünglich haben wir die Zahl beim Punkt
getrennt ...
Nun ist alles bereinigt, und wir müssen die beiden Teile wieder
zusammenfügen.
Der ganzzahlige Bereich durchläuft die Funktion abs(), damit auch dann
ein vernünftiger Wert zurückgegeben wird, wenn der Benutzer nur Leerzeichen
eingegeben hat oder mehrere Nullen vor der eigentlichen Zahl.
... nun
den Punkt nicht vergessen und negative Werte wieder als solche darstellen.
|
| Zeile37: |
Fertig!
Nun kann der Zahlenwert frisch geputzt
und gestriegelt zurückgegeben werden.
Einbau:
- Speichern Sie den Quellcode in
eine Datei namens zahlenbereinigung.php
- Binden Sie die Funktion am Anfang in Ihr Script ein, mit include
("zahlenbereinigung.php");
(oder bauen Sie als alternative das Script direkt in Ihren Quelltext
ein)
- Aufgerufen wird die Funktion mit Zahlenfilter(wert).
Also Zahlenfilter($Zahl) oder Zahlenfilter(155.88)
Viel Spass ! |