Función creada para convertir números en texto, específicamente con dos decimales. Para PHP
<?php function letras($n){ $cent=array( 1=>'ciento', 'doscientos', 'trescientos', 'cuatrocientos', 'quinientos', 'seiscientos', 'setecientos', 'ochocientos', 'novecientos'); $dec=array( '', '', '', 'treinta', 'cuarenta', 'cincuenta', 'sesenta', 'setenta', 'ochenta', 'noventa' ); $uni=array( '', ' y un', ' y dos', ' y tres', ' y cuatro', ' y cinco', ' y seis', ' y siete', ' y ocho', ' y nueve'); for ($i=0; $i<100;$i++){ $d=(int)($i/10); $u=$i%10; $num[$i]=$dec[$d].$uni[$u]; } $num[0]=''; $num[1]='un'; $num[2]='dos'; $num[3]='tres'; $num[4]='cuatro'; $num[5]='cinco'; $num[6]='seis'; $num[7]='siete'; $num[8]='ocho'; $num[9]='nueve'; $num[10]='diez'; $num[11]='once'; $num[12]='doce'; $num[13]='trece'; $num[14]='catorce'; $num[15]='quince'; $num[16]='dieciseis'; $num[17]='diecisiete'; $num[18]='dieciocho'; $num[19]='diecinueve'; $num[20]='veinte'; $num[21]='veintiun'; $num[22]='veintidos'; $num[23]='veintitres'; $num[24]='veinticuatro'; $num[25]='veinticinco'; $num[26]='veintiseis'; $num[27]='veintisiete'; $num[28]='veintiocho'; $num[29]='veintinueve'; $num[30]='treinta'; $num[40]='cuarenta'; $num[50]='cincuenta'; $num[60]='sesenta'; $num[70]='setenta'; $num[80]='ochenta'; $num[90]='noventa'; $num[100]='cien'; if ($n<=100) { return $num[$n]; } else if($n<1000) { $c=(int)($n/100); return("$cent[$c] ".letras($n%100)); } else if ($n<1000000) { $c=(int)($n/1000); $p=letras($c); return("$p mil " .letras($n%1000)); } else { $c=(int)($n/1000000); $p=letras($c); $q=($p=='un')?'millón':'millones'; return("$p $q " .letras($n%1000000)); } } function letras2($monto){ $cant=explode('.',$monto); $v1=($cant[0]==0)?'cero':letras($cant[0]); $v2='0.'.$cant[1]; $v2=substr('0'.round($v2*100,0),-2); return $v1.' con '.$v2.'/100'; }
Si se quiere convertir, por ejemplo á por á y todas las demás, con esta simple función ya vale. Su funcionamiento:
1. Convierte TODOS los caracteres especiales a entidades.
2. Como los caracteres <, & y > no nos interesa que queden codificados, se vuelven a descodificar (sólo estos).
function caracteres_html($texto){ $texto = htmlentities($texto, ENT_NOQUOTES, 'UTF-8'); // Convertir caracteres especiales a entidades $texto = htmlspecialchars_decode($texto, ENT_NOQUOTES); // Dejar <, & y > como estaban return $texto; }
Si no se dispone de PHP 5 o posterior, se necesita también agregar el siguente código:
if ( !function_exists('htmlspecialchars_decode') ) { function htmlspecialchars_decode($text) { return strtr($text, array_flip(get_html_translation_table(HTML_SPECIALCHARS))); } }
A disfrutarlo!