Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 PEAR – Einführung
2 Authentication
3 Caching
4 Date and Time
5 File Formats
6 HTTP
7 Internationalization
8 Mail
9 Networking
10 PHP
11 Text
12 Web Services
13 Benchmarking
14 Configuration
15 Database
16 File System
17 HTML
18 Images
19 Logging
20 Math
21 Numbers
22 Tools and Utilities
23 XML
24 Selbst Pakete erstellen
25 PECL
Index
Ihre Meinung?

Spacer
 <<   zurück
PHP PEAR von Carsten Möhrke
Anwendung und Entwicklung – Erweiterungen für PHP schreiben
Buch: PHP PEAR

PHP PEAR
798 S., 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-580-0
gp 21 Numbers
  gp 21.1 Numbers_Roman
  gp 21.2 Numbers_Words

21 Numbers

In der Kategorie »Numbers« sind einige Pakete zu finden, die reine Zahlen in eine andere Darstellung konvertieren können. Neben der Möglichkeit, Zahlen in eine römische Darstellung zu konvertieren, können Sie Zahlen auch als ausgeschriebene Texte ausgeben lassen.


Rheinwerk Computing

21.1 Numbers_Roman  toptop


Besprochene Version: 1.0.1 Lizenz: PHP-Lizenz
Klassendatei(en): Numbers/Roman.php

Numbers_Roman ist ein kleines, aber leistungsfähiges Paket, das es Ihnen ermöglicht, Integer-Zahlen in eine römische Darstellung zu bringen bzw. eine römische Zahl in eine arabische Darstellung umzurechnen. Es besteht nur aus zwei Methoden, die beide statisch aufgerufen werden können. Interessant ist hierbei, dass die Methoden keine Fehler generieren (können). Sie müssen die Rückgabewerte also nicht daraufhin prüfen, ob ein PEAR_Error-Objekt generiert wurde.

Die Methode toNumeral() konvertiert eine Zahl von der arabischen in die römische Darstellung. Sie bekommt als ersten Parameter die zu konvertierende Zahl übergeben und liefert das römische Pendant zurück:

include_once("Numbers/Roman.php"); 
echo Numbers_Roman::toNumeral(271); 
// gibt CCLXXI aus

Listing 21.1 Konvertieren einer arabischen Zahl in eine römische Darstellung

Die Methode akzeptiert aber noch zwei weitere Parameter, mit denen Sie ihr Verhalten beeinflussen können. Geben Sie nach der Zahl ein false an, wird die Zahl mit Kleinbuchstaben dargestellt. Die Default-Einstellung true definiert, dass die Zahl in Großbuchstaben dargestellt wird. Auch bei dem nächsten Parameter handelt es sich um einen booleschen Wert. Dieser steuert, ob die Zahl als HTML ausgegeben werden soll oder nicht. Das mag sich an dieser Stelle ein wenig komisch anhören, hat aber einen ganz einfachen Hintergrund. Und zwar sieht das römische Zahlensystem vor, dass eine Zahl als »mit 1000 multipliziert« angesehen wird, wenn ein Strich darüber ist oder sie links und rechts mit Strichen »eingekastet« ist. Wenn Sie die HTML-Darstellung dadurch bestätigen, dass Sie an dritter Stelle ein true angeben (die Standard-Einstellung), wird mithilfe von <span style="text-decoration:overline;"> ein Strich über dem betreffenden Zeichen dargestellt. Die Alternative, wenn Sie false angeben, ist, dass links neben der Ziffer, die ein Vielfaches von 1000 sein soll, jeweils ein Unterstrich dargestellt wird. So wird die Zahl 9002 in der »Nicht-HTML-Darstellung« durch _VM_VII ( = 5*1000 + (5*1000 – 1000) + 1 + 1) repräsentiert. Bevorzugen Sie die üblichere Darstellung mit senkrechten Strichen links und rechts neben der Zahl, hilft die folgende kleine Routine Ihnen weiter:

include_once("Numbers/Roman.php"); 
//Konvertieren in Grossbuchstaben ohne HTML 
$zahlAlt= Numbers_Roman::toNumeral(9002,true,false); 
 
$len=strlen($zahlAlt); //Stringlaenge ermitteln 
$zahlNeu=''; //zum Speichern der neuen Zahl 
// Alte Zahl in Schleife durchlaufen 
for ($cnt=0; $cnt<$len; $cnt+=1) 
{ 
   $ziffer=$zahlAlt{$cnt}; 
   if ("_"==$ziffer)  // Unterstrich gefunden? 
   { 
      $cnt+=1; 
      $zahlNeu.="|{$zahlAlt{$cnt}}|"; 
   } 
   else 
   { 
      $zahlNeu.=$ziffer; 
   } 
} 
echo $zahlNeu;

Listing 21.2 Ausgabe einer Zahl im Text-Modus mit Konvertierung

Die zweite Methode, die das Paket unterstützt, ist toNumber(). Sie übernimmt die Konvertierung in eine arabische Zahl und bekommt eine römische in großer, kleiner oder gemischter Schreibweise übergeben.

include_once("Numbers/Roman.php"); 
echo Numbers_Roman::toNumber("VMII"); 
// gibt 997 aus

Listing 21.3 Konvertierung in eine arabische Zahl

 <<   zurück
     
  Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: PHP PEAR
PHP PEAR
Jetzt Buch bestellen!
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: PHP 5.6 und MySQL 5.7






 PHP 5.6 und
 MySQL 5.7


Zum Rheinwerk-Shop: Einstieg in PHP 5.6 und MySQL 5.6






 Einstieg in PHP 5.6
 und MySQL 5.6


Zum Rheinwerk-Shop: Responsive Webdesign






 Responsive Webdesign


Zum Rheinwerk-Shop: Moderne Websites entwickeln






 Moderne Websites
 entwickeln


Zum Rheinwerk-Shop: MySQL 5.6






 MySQL 5.6


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo








Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern