Weblogs Código

RecorteX

» letras
73 usuarios y 244 recortes de código
Usuario

Contraseña
Crear cuenta
Estás viendo los recortes de la etiqueta letras

RSS
Recortes: 2

Etiquetas relacionadas:
PHP
entidades
HTML
acentos
números
convertir
dieresis
tildes

Números en texto

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';
}
 

Convertir letras con acentos, tildes, ... a entidades HTML

Si se quiere convertir, por ejemplo á por &aacute; 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!

Proyecto: Juanjo Navarro, 2006 - Diseño: Albin