3 Stimmen

Wie konvertiert man einen Integer-Wert in das Word-Format mit php5?

Ich möchte eine Zahl in das Word-Format konvertieren.

Zum Beispiel:

$count = 5;
echo "Hello Mr user this is your ".$count." review."

Ich brauche eine Ausgabe wie diese...

"Hallo Herr Benutzer, dies ist Ihre fünfte Bewertung".

2voto

beerwin Punkte 8474

Überprüfen Sie dies in einem anderen StackOverflow-Thread:

Konvertierung einer Zahl in ihre String-Darstellung

1voto

Kakawait Punkte 3849

Es gibt keine eingebaute Funktion in php, um das zu machen. Aber versuchen Sie externe Lib wie : http://pear.php.net/package/Numbers_Words

1voto

itsols Punkte 4996

Wenn Sie sich auf eine eingebaute Funktion beziehen, nein, PHP hat keine. Aber Sie können Ihre eigene erstellen.

Wenn Sie nur die englischen Zahlen betrachten, ist das kein großes Problem. Wenn man aber mit einer Fremdsprache (wie Arabisch) zu tun hat, muss man etwas mehr Arbeit leisten, da Zahlen und Objekte Geschlechter haben. Der Algorithmus wird also ein wenig komplexer.

Nur fürs Protokoll: Ich arbeite an der Entwicklung eines Open-Source-Konvertierungsprogramms für Arabisch.

1voto

Wesley Murch Punkte 98097

Ich weiß, das ist nicht genau das, was Sie suchen, aber ich habe das aus den Kommentaren auf php.net irgendwo aufgeschnappt (kann die Quelle nicht finden), es funktioniert für Ausgaben wie 1st , 243rd y 85th .

function ordinalize($num)
{
    if ( ! is_numeric($num)) return $num;

    if ($num % 100 >= 11 and $num % 100 <= 13)
    {
        return $num."th";
    }
    elseif ( $num % 10 == 1 )
    {
        return $num."st";
    }
    elseif ( $num % 10 == 2 )
    {
        return $num."nd";
    }
    elseif ( $num % 10 == 3 )
    {
        return $num."rd";
    }
    else
    {
        return $num."th";
    }
}

Je nachdem, wie hoch die zu erwartenden Zahlen sind, sollten Sie dieses Format aus Gründen der Lesbarkeit und Einfachheit in Betracht ziehen. Wenn sie unter 100 liegen, sollten Sie Ihre eigene Funktion leicht schreiben können. Wenn sie jedoch sehr hoch werden können:

"Hallo Herr Benutzer, dies ist Ihre dreitausendvierhundertfünfundzwanzigste Überprüfung."

Klingt ein bisschen peinlich :)

Ich hoffe, das hilft ein wenig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X