[PHP] Zahlwort in Zahl

Dieses Thema im Forum "Webentwicklung" wurde erstellt von ~BLADE~, 4. Januar 2010 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 4. Januar 2010
    Zahlwort in Zahl

    hallo,

    ich habe im Internet eine Seite gefunden, da ist ein PHP Skript mit dem man Zahl in Zahlwort umwandeln kann. Wenn ich dem Skript eine Zahl übergebe wird diese dann in zahlwort dargestellt, nun das klappt alles wunderbar.
    Was ich brauche ist ein Zahlenwort in eine Zahl umwandeln z.b. achtundneunzigtausendneunhundertsechsundsechzig = 98966, wie ich dass aber anhand des Skriptes realisieren soll hab ich leider kein plan.

    Bin auch kein experte was PHP angeht, habe zwar gewisse Grundkenntnisse drauf aber leider nicht genung und dazu fehlt mir einfach die Zeit, und ich muss es in zwei Wochen fertig haben, deswegen suche ich hier nach hilfe.

    PHP:
    define ( 'NUMERAL_SIGN' 'minus' );
    define ( 'NUMERAL_HUNDREDS_SUFFIX' 'hundert' );
    define ( 'NUMERAL_TENNER_SUFFIX' 'zig' );
    define ( 'NUMERAL_INFIX' 'und' );

    $numeral  = array( 'null' 'ein' 'zwei' 'drei' 'vier' ,
                      
    'fünf' 'sechs' 'sieben' 'acht' 'neun' ,
                      
    'zehn' 'elf' 'zwölf' 'drei~' 'vier~' ,
                      
    'fünf~' 'sech~' 'sieb~' 'acht~' 'neun~' );
    $tenner  = array( '' '' 'zwan~' 'dreißig' 'vier~' ,
                    
    'fünf~' 'sech~' 'sieb~' 'acht~' 'neun~' );

    $group_suffix [ 0 ][ 0 ] =  '' ;
    $group_suffix [ 0 ][ 1 ] =  '' ;
    $group_suffix [ 1 ][ 0 ] =  'tausend ' ;
    $group_suffix [ 1 ][ 1 ] =  'tausend ' ;
    $group_suffix [ 2 ][ 0 ] =  'e Million ' ;
    $group_suffix [ 2 ][ 1 ] =  ' Millionen ' ;
    $group_suffix [ 3 ][ 0 ] =  'e Milliarde ' ;
    $group_suffix [ 3 ][ 1 ] =  ' Milliarden ' ;


    function 
    num2text  ( $number ) {
     global 
    $numeral ;

     
    $prefix  '' ;
     if (
    $number  ==  0 ) return  $numeral [ 0 ];  // null
     
    if ( $number  0 $prefix  NUMERAL_SIGN  ' ' // minus …
     
    return  $prefix  num2text_group ( abs ( $number ));
    }


    function 
    num2text_group  ( $number $group_level  0 ) {
     global 
    $numeral $tenner $group_suffix ;

     
    // Ende der Rekursion erreicht, wenn Zahl gleich Null
     
    if ( $number  ==  0 ) return  '' ;

     
    // Zahlengruppe dieser Runde bestimmen
     
    $group_number  $number  1000 ;


     if (
    $group_number  ==  1 ) {

      
    // Zahl der Gruppe ist Eins
      
    $res  $numeral [ 1 ] .  $group_suffix [ $group_level ][ 0 ];  // eine Milliarde

     
    } elseif ( $group_number  1 ) {

      
    // Zahlwort der Hunderter
      
    $fst_digit  floor ( $group_number  100 );
      if (
    $fst_digit $res  $numeral [ $fst_digit ] .  NUMERAL_HUNDREDS_SUFFIX // fünfhundert

      // Zahlwort der Zehner und Einer
      
    $lst_digits  $group_number  100 ;
      
    $snd_digit  floor ( $lst_digits  10 );
      
    $trd_digit  $lst_digits  10 ;

      if (
    $lst_digits  ==  0 $res  .=  '' // null
      
    elseif ( $lst_digits  ==  1 $res  .=  $numeral [ 1 ] .  's' // eins
      
    elseif ( $lst_digits  <=  19 $res  .=  str_replace ( '~' $numeral [ 10 ],  $numeral [ $lst_digits ]);  // dreizehn
      
    else {
       if (
    $trd_digit $res  .=  $numeral [ $trd_digit ] .  NUMERAL_INFIX // sechsund…
       
    $res  .=  str_replace ( '~' NUMERAL_TENNER_SUFFIX $tenner [ $snd_digit ]);  // (…)achtzig
      
    }

      
    // Suffix anhängen
      
    $res  .=  $group_suffix [ $group_level ][ 1 ];  // Millionen
     
    }

     
    // Nächste Gruppe auswerten und Zahlwort zurückgeben
     
    $number  floor ( $number  1000 );
     
    $group_level ++;

     return 
    num2text_group ( $number $group_level ) .  $res ;
    }
     
  2. 4. Januar 2010
    AW: Zahlwort in Zahl

    änder das einfach im array

    von
    PHP:
    $group_suffix [ 1 ][ 0 ] =  'tausend ' ;
    $group_suffix [ 1 ][ 1 ] =  'tausend ' ;

    zu
    PHP:
    $group_suffix [ 1 ][ 0 ] =  'tausend' ;
    $group_suffix [ 1 ][ 1 ] =  'tausend' ;
    // edit
    jetzt hab ich verstanden was du willst.
    also in umgekehrter folge.
    wort in zahl umwandeln.

    sorry, dabei kann ich dir nicht helfen.
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.