PHP Ejemplos

Números a letras con PHP usando Librería [Ejemplo completo]

¿Como transformar números a letras con PHP?

Números a letras con PHP. Si lo que necesitamos es una solución rápida y precisa sin reinventar la rueda para un programa real podemos utilizar funciones o librerías para lograr tal objetico.

¿Existen librerías para convertir números a letras con PHP?

La respuesta es un Sí. Claro que si existe varias librerías que hacen esta función PHP de una manera muy sencilla.

Ver demostración

Ver Demostración

PRIMERA FORMA: CONVERTIR NÚMEROS A LETRAS CON PHP

A continuación, vamos a implementar una librería llamada (Número a Letras PHP). Por lo tanto, esta librería PHP nos servirá para convertir un número a su valor correspondiente en letras, palabras o texto según corresponda.

Requisitos de la librería

  • PHP 7.2 o superior.
  • Servidor local para descargar la librería
  • Instalar la aplicación composer
composer require luecano/numero-a-letras

Te recomiendo para usarla tener conocimientos previos del uso del composer para su instalación:

  • Instalar composer:
  • Tipear composer init
  • Digitar composer require (para usar el asistente y colocar la librería)
  • Agregar el autoloader
  • Probar la librería.

Uso de la Librería y Ejemplos de uso

En primera instancia debemos de agregar la referencia hacia la librería

require 'vendor/autoload.php';
use Luecano\NumeroALetras\NumeroALetras;

Implementación del ejemplo

Para usar el script debemos de implementar siguiente el siguiente ejemplo.

$formatter = new NumeroALetras();
echo $formatter->toMoney(2500.90, 2, 'DÓLARES', 'CENTAVOS');

//DOS MIL QUINIENTOS DÓLARES CON NOVENTA CENTAVOS

Integración Final

Mostrando un ejemplo completo de la declaración de la librería y el uso para poder lograr convertir los números a letras.

<?php

// se llama desde una subcarpeta
require 'vendor/autoload.php';

// usando paquete 
use Luecano\NumeroALetras\NumeroALetras;

$a='<h1>Convertir números a letras PHP</h1>';
echo $a;

$formatter = new NumeroALetras();
echo $formatter->toMoney(10.10, 2, 'SOLES', 'CENTIMOS');
?>

Recordemos que los números a convertir pueden ser variables definidas o extraídas de una base de datos como ser MySQL.

SEGUNDA FORMA: CONVERTIR NÚMEROS A LETRAS CON PHP

Otra opción es usar una función PHP para convertir números a letras y específicamente usando la clase (NumberFormatter) con esta adaptación se puede mejorar el alcance de NumberFormatter.

La tarea nuestra es poder pasar los parámetros a la función de manera personalizada, por ejemplo:  pesos, centavos y una conjunción como y, con, etc.

Aquí les dejare la función básica que se podría mejorar para adaptarla a sus necesidades y/o proyectos web que estén realizando.

function number_words($valor,$desc_moneda, $sep, $desc_decimal) {
$arr = explode(".", $valor);
$entero = $arr[0];
if (isset($arr[1])) {
$decimos = strlen($arr[1]) == 1 ? $arr[1] . '0' : $arr[1];
}

$fmt = new \NumberFormatter('es', \NumberFormatter::SPELLOUT);
if (is_array($arr)) {
$num_word = ($arr[0]>=1000000) ? "{$fmt->format($entero)} de $desc_moneda" : "{$fmt->format($entero)} $desc_moneda";
if (isset($decimos) && $decimos > 0) {
$num_word .= " $sep {$fmt->format($decimos)} $desc_decimal";
}
}
return $num_word;
}

Ejemplo de ejecución

Si deseamos usar la siguiente función podeos implementarlo de la siguiente forma que detallaremos a continuación.

echo number_words("10.10","pesos","y","centavos");
echo number_words("10","pesos","y","centavos");
echo number_words("1000000","pesos","y","centavos");
echo number_words("0.25","pesos","y","centavos");
echo number_words("500.35","dólares","con","centavos");

Resultado en el navegador

Una vez implementado el ejemplo, la siguiente tarea es visualizar el resultado final en el navegador web y debería emitir un resultado similar a este.

diez pesos y diez centavos
diez pesos
un millón de pesos
cero pesos y veinticinco centavos
quinientos dólares con treinta y cinco centavos

Conclusión

Si estamos realizando un sistema de facturación u otro relacionado con facturas y monedas, este articulo les ira de maravilla porque explicamos cómo convertir números a letras con PHP.

Hemos realizado dos ejemplos:

  1. Usando Librería (Número a Letras PHP).
  2. Con el uso de una función PHP (function number_words).

La integración es muy sencilla y les ahorrara mucho trabajo, espero que esta explicación les ayude en sus proyectos web que estén realizando.

Nota:

Se recomienda probarlo en un servidor de producción porque tienen la mayoria de modulos PHP activados.

Ver demostración

Ver Demostración
Descarga 156 Sistemas PHP & MySQL

¿Te gusto el artículo? Puedes apoyarme invitándome un Café

Nestor Tapia

Bloggero, amante de la programación PHP, innovador y me fascina compartir información. Desde que conocí el entorno informatico y el internet me llamó la atención la programación, Por tal motivo he creado mi blog BAULPHP.COM para compartir mis experiencias con todos ustedes. ¡Gracias por leerme!.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba