Konvertieren von Zahlen in Wörter mit PHP

Ein interessantes und sehr nützliches Feature der Number_Words-Klasse ist deren Fähigkeit, die lokalen Äquivalente sowohl für Zahlen als auch für Währungen auszugeben. Dies wird durch ein zusätzliches, optionales Argument beim Aufruf von toWords() und toCurrency() erreicht. Hier zum Beispiel der Code, um „drei Millionen“ auf Französisch zu schreiben:


Die Ausgabe hiervon ist:

„3000000 in words is trois millions“

Dies funktioniert auch mit Währungen:


Dies ist schon etwas komplizierter. Das erste Argument für toCurrency() ist die zu konvertierende Zahl (man beachte, dass hier auch Dezimalbrüche funktionieren), gefolgt von dem Locale, für das der String angezeigt werden soll (hier US), und der zu verwendenden Währungseinheit (hier Schweizer Franken, CHF).

Hier das Ergebnis:

„3000000.50 in words is three million Swiss francs fifty rapps“

Locale-spezifische Daten für eine ganze Anzahl von Ländern sind bereits in der Klasse enthalten. Falls das eigene Land in der Liste fehlt, kann man problemlos für individuelle Zwecke eine Locale-Datei erstellen. Dazu kopiert man einfach eine der vorhandenen Sprach-Dateien und bearbeitet sie so, dass sie lokale Äquivalente benutzt. Und man sollte nicht versäumen, eine Kopie an den Autor der Klasse zu schicken, so dass die Datei der nächsten Distribution beigefügt werden kann.

Ein Beispiel aus dem wirklichen Leben

Nun kann man alles soeben Gelernte in einem echten Script anwenden. Man stelle sich dazu den folgenden Fall vor: Benötigt wird ein Script zur Anzeige einer ausdruckbaren Zusammenstellung aller Artikel, die einem bestimmten Kunden im Laufe des Monats verkauft wurden. Die Liste der verkauften Artikel ist in einer MySQL-Datenbank gespeichert, indiziert nach Datum und Kundennummer. Dazu genügt es, alle Informationen aus der Datenbank abzurufen, sie hübsch zu formatieren, die Zahlen zu addieren und die Gesamtsumme in Ziffern und Wörtern anzuzeigen. Listing A enthält den entsprechenden Code.

Man beachte hier die Verwendung der Numbers_Words-Klasse. Nach Addition aller Einkäufe und dem Abzug bereits getätigter Zahlungen von dieser Summe bildet der Rest den vom Kunden noch zu zahlenden Betrag. Diese Summe wird sowohl in Ziffern als auch in Wörtern ausgegeben, wobei die beschriebene toCurrency()-Methode zum Einsatz kommt. Hier ein Beispiel für eine Ausgabe, wie sie das Script in Listing A erzeugt.

Dieser Code ist hoffentlich für den einen oder anderen Leser nützlich, der beim nächsten Mal, wenn er eine Anwendung zur Rechnungsstellung schreibt, auf die Numbers_Words-Klasse zurückgreifen kann.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Konvertieren von Zahlen in Wörter mit PHP

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *