PHP - convertir números a letras en 100 líneas!

 
Vista:

convertir números a letras en 100 líneas!

Publicado por cristian (1 intervención) el 05/03/2013 22:54:17
he elaborado un script para convertir números a letras, espero que les sirva.
miren, es un poco rústico, ya lo sé. pero los que habían en internet no me gustaban, ni me servían, así que lo hice yo mismo.

debes llamar a la función y pasarle $monton "monto en número"
te devolverá $montol "monto en letras"

montol($monton);
echo $montol;


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?php
function montol($monton)
{		global $montol, $longitud;	$cadena=(string)$monton;
	$c = preg_split('//', $cadena, -1, PREG_SPLIT_NO_EMPTY);
	$caracter = array_reverse($c);	$longitud = strlen($cadena);
	$uni='';$decena='';$centena='';$unidaddemil='';$decenademil='';$centenademil=''; $unidaddemillon=''; $decenademillon='';$centenademillon='';
	//UNIDAD ------------------------------------------------------------------------------------------------------------	
	if ($longitud==1 || $longitud>1) {	$valor=$caracter[0];
		if ($valor=='1') {$unidad='un';};	 if ($valor=='2') {$unidad='dos';};	 if ($valor=='3') {$unidad='tres';};
		if ($valor=='4') {$unidad='cuatro';};if ($valor=='5') {$unidad='cinco';};if ($valor=='6') {$unidad='seis';};
		if ($valor=='7') {$unidad='siete';}; if ($valor=='8') {$unidad='ocho';}; if ($valor=='9') {$unidad='nueve';};
		if ($valor=='0') {$unidad='';};	$uni=$unidad;
		if ($longitud==2 || $longitud>2){if($caracter[1]==1 || $caracter[1]==2) {$uni='';}; };
		if ($longitud==2 || $longitud>2){if(!$caracter[1]==0 & !$caracter[0]==0 & !$caracter[1]==1 & !$caracter[1]==2) {$uni=' y '. $unidad;};	}; 	};
	//DECENA ------------------------------------------------------------------------------------------------------------	
	if ($longitud==2 || $longitud>2) {	$valor=$caracter[1]; // DECENA
		if ($valor=='1') {$unidad='diez';};		if ($valor=='2') {$unidad='veinte';};	if ($valor=='3') {$unidad='treinta';};
		if ($valor=='4') {$unidad='cuarenta';}; if ($valor=='5') {$unidad='cincuenta';};if ($valor=='6') {$unidad='sesenta';};
		if ($valor=='7') {$unidad='setenta';};  if ($valor=='8') {$unidad='ochenta';};  if ($valor=='9') {$unidad='noventa';};
		if ($valor=='0') {$unidad='';};$decena=$unidad;
		if($valor=='1' & $caracter[0]==0){$decena='diez';};			if($valor=='1' & $caracter[0]==1){$decena='once';};
		if($valor=='1' & $caracter[0]==2){$decena='doce';};			if($valor=='1' & $caracter[0]==3){$decena='trece';};
		if($valor=='1' & $caracter[0]==4){$decena='catorce';};		if($valor=='1' & $caracter[0]==5){$decena='quince';};
		if($valor=='1' & $caracter[0]==6){$decena='dieciséis';};	if($valor=='1' & $caracter[0]==7){$decena='diecisiete';};
		if($valor=='1' & $caracter[0]==8){$decena='dieciocho';};	if($valor=='1' & $caracter[0]==9){$decena='diecinueve';};
		if($valor=='2' & $caracter[0]==0){$decena='veinte';};		if($valor=='2' & $caracter[0]==1){$decena='veintiuno';};
		if($valor=='2' & $caracter[0]==2){$decena='veintidos';};	if($valor=='2' & $caracter[0]==3){$decena='veintitres';};
		if($valor=='2' & $caracter[0]==4){$decena='veinticuatro';};	if($valor=='2' & $caracter[0]==5){$decena='veinticinco';};
		if($valor=='2' & $caracter[0]==6){$decena='veintiséis';};	if($valor=='2' & $caracter[0]==7){$decena='veintisiete';};
		if($valor=='2' & $caracter[0]==8){$decena='veintiocho';};	if($valor=='2' & $caracter[0]==9){$decena='veintinueve';};		};
	// CENTENA ------------------------------------------------------------------------------------------------------------	
	if ($longitud==3 || $longitud>3) {	$valor=$caracter[2]; // CENTENA
		if ($valor=='1') {$unidad='cien';};	 		if ($valor=='2') {$unidad='doscientos';};	if ($valor=='3') {$unidad='trescientos';};
		if ($valor=='4') {$unidad='cuatrocientos';};if ($valor=='5') {$unidad='quinientos';};	if ($valor=='6') {$unidad='seiscientos';};
		if ($valor=='7') {$unidad='setecientos';};  if ($valor=='8') {$unidad='ochocientos';};  if ($valor=='9') {$unidad='novecientos';};
		if ($valor=='0') {$unidad='';}; $centena=$unidad; if ($valor=='1') {if (!$caracter[0]==0 || !$caracter[1]==0) {	$centena='ciento';} };		};
	//UNIDAD DE MIL------------------------------------------------------------------------------------------------------------	
	if ($longitud==4 || $longitud>4) {	$valor=$caracter[3];
		if ($valor=='1') {$unidad='un';};	 if ($valor=='2') {$unidad='dos';};	 if ($valor=='3') {$unidad='tres';};
		if ($valor=='4') {$unidad='cuatro';};if ($valor=='5') {$unidad='cinco';};if ($valor=='6') {$unidad='seis';};
		if ($valor=='7') {$unidad='siete';}; if ($valor=='8') {$unidad='ocho';}; if ($valor=='9') {$unidad='nueve';};
		if ($valor=='0') {$unidad='';};	$unidaddemil=$unidad.' mil ';
		if ($longitud==4 || $longitud>4){if($caracter[4]==1 || $caracter[4]==2) {$unidaddemil=''.' mil ';}; };
		if ($longitud==4 || $longitud>4){if(!$caracter[4]==0 & !$caracter[3]==0) {$unidaddemil=' y '. $unidad.' mil ';};	}; 	};
	//DECENA DE MIL------------------------------------------------------------------------------------------------------------	
	if ($longitud==5 || $longitud>5) {	$valor=$caracter[4]; // DECENA
		if ($valor=='1') {$unidad='diez';};		if ($valor=='2') {$unidad='veinte';};	if ($valor=='3') {$unidad='treinta';};
		if ($valor=='4') {$unidad='cuarenta';}; if ($valor=='5') {$unidad='cincuenta';};if ($valor=='6') {$unidad='sesenta';};
		if ($valor=='7') {$unidad='setenta';};  if ($valor=='8') {$unidad='ochenta';};  if ($valor=='9') {$unidad='noventa';};
		if ($valor=='0') {$unidad='';};if($caracter[3]==0){$decenademil=$unidad.' mil ';}else{$decenademil=$unidad;};
		if($valor=='1' & $caracter[3]==0){$decenademil='diez';};		if($valor=='1' & $caracter[3]==1){$decenademil='once';};
		if($valor=='1' & $caracter[3]==2){$decenademil='doce';};		if($valor=='1' & $caracter[3]==3){$decenademil='trece';};
		if($valor=='1' & $caracter[3]==4){$decenademil='catorce';};		if($valor=='1' & $caracter[3]==5){$decenademil='quince';};
		if($valor=='1' & $caracter[3]==6){$decenademil='dieciséis';};	if($valor=='1' & $caracter[3]==7){$decenademil='diecisiete';};
		if($valor=='1' & $caracter[3]==8){$decenademil='dieciocho';};	if($valor=='1' & $caracter[3]==9){$decenademil='diecinueve';};
		if($valor=='2' & $caracter[3]==0){$decenademil='veinte';};		if($valor=='2' & $caracter[3]==1){$decenademil='veintiuno';};
		if($valor=='2' & $caracter[3]==2){$decenademil='veintidos';};	if($valor=='2' & $caracter[3]==3){$decenademil='veintitres';};
		if($valor=='2' & $caracter[3]==4){$decenademil='veinticuatro';};if($valor=='2' & $caracter[3]==5){$decenademil='veinticinco';};
		if($valor=='2' & $caracter[3]==6){$decenademil='veintiséis';};	if($valor=='2' & $caracter[3]==7){$decenademil='veintisiete';};
		if($valor=='2' & $caracter[3]==8){$decenademil='veintiocho';};	if($valor=='2' & $caracter[3]==9){$decenademil='veintinueve';};		};
	// CENTENA DE MIL------------------------------------------------------------------------------------------------------------	
	if ($longitud==6 || $longitud>6) {	$valor=$caracter[5]; // CENTENA
		if ($valor=='1') {$unidad='cien';};	 		if ($valor=='2') {$unidad='doscientos';};	if ($valor=='3') {$unidad='trescientos';};
		if ($valor=='4') {$unidad='cuatrocientos';};if ($valor=='5') {$unidad='quinientos';};	if ($valor=='6') {$unidad='seiscientos';};
		if ($valor=='7') {$unidad='setecientos';};  if ($valor=='8') {$unidad='ochocientos';};  if ($valor=='9') {$unidad='novecientos';};
		if ($valor=='0') {$unidad='';};if($caracter[3]==0 & $caracter[4]==0 ){$centenademil=$unidad.' mil ';}else{$centenademil=$unidad;};
		if ($valor=='1') {	if (!$caracter[3]==0 || !$caracter[4]==0) {	$centenademil='ciento';} };		};
	//UNIDAD DE MILLON ------------------------------------------------------------------------------------------------------------	
	if ($longitud==7 || $longitud>7) {	$valor=$caracter[6];
		if ($valor=='1') {$unidad='un';};	 if ($valor=='2') {$unidad='dos';};	 if ($valor=='3') {$unidad='tres';};
		if ($valor=='4') {$unidad='cuatro';};if ($valor=='5') {$unidad='cinco';};if ($valor=='6') {$unidad='seis';};
		if ($valor=='7') {$unidad='siete';}; if ($valor=='8') {$unidad='ocho';}; if ($valor=='9') {$unidad='nueve';};
		if ($valor=='0') {$unidad='';};	$unidaddemillon=$unidad.' millones ';
		if ($longitud==8 || $longitud>8){if($caracter[7]==1 || $caracter[7]==2) {$unidaddemillon=''.' millones ';}; };
		if ($longitud==8 || $longitud>8){if(!$caracter[7]==0 & !$caracter[6]==0) {$unidaddemillon=' y '. $unidad.' millones ';};	}; 	};
	//DECENA DE MILLON------------------------------------------------------------------------------------------------------------	
	if ($longitud==8 || $longitud>8) {	$valor=$caracter[7]; // DECENA
		if ($valor=='1') {$unidad='diez';};		if ($valor=='2') {$unidad='veinte';};	if ($valor=='3') {$unidad='treinta';};
		if ($valor=='4') {$unidad='cuarenta';}; if ($valor=='5') {$unidad='cincuenta';};if ($valor=='6') {$unidad='sesenta';};
		if ($valor=='7') {$unidad='setenta';};  if ($valor=='8') {$unidad='ochenta';};  if ($valor=='9') {$unidad='noventa';};
		if ($valor=='0') {$unidad='';};if($caracter[6]==0){$decenademillon=$unidad.' millones ';}else{$decenademillon=$unidad;};
		if($valor=='1' & $caracter[6]==0){$decenademillon='diez';};			if($valor=='1' & $caracter[6]==1){$decenademillon='once';};
		if($valor=='1' & $caracter[6]==2){$decenademillon='doce';};			if($valor=='1' & $caracter[6]==3){$decenademillon='trece';};
		if($valor=='1' & $caracter[6]==4){$decenademillon='catorce';};		if($valor=='1' & $caracter[6]==5){$decenademillon='quince';};
		if($valor=='1' & $caracter[6]==6){$decenademillon='dieciséis';};	if($valor=='1' & $caracter[6]==7){$decenademillon='diecisiete';};
		if($valor=='1' & $caracter[6]==8){$decenademillon='dieciocho';};	if($valor=='1' & $caracter[6]==9){$decenademillon='diecinueve';};
		if($valor=='2' & $caracter[6]==0){$decenademillon='veinte';};		if($valor=='2' & $caracter[6]==1){$decenademillon='veintiuno';};
		if($valor=='2' & $caracter[6]==2){$decenademillon='veintidos';};	if($valor=='2' & $caracter[6]==3){$decenademillon='veintitres';};
		if($valor=='2' & $caracter[6]==4){$decenademillon='veinticuatro';};	if($valor=='2' & $caracter[6]==5){$decenademillon='veinticinco';};
		if($valor=='2' & $caracter[6]==6){$decenademillon='veintiséis';};	if($valor=='2' & $caracter[6]==7){$decenademillon='veintisiete';};
		if($valor=='2' & $caracter[6]==8){$decenademillon='veintiocho';};	if($valor=='2' & $caracter[6]==9){$decenademillon='veintinueve';};		};
	// CENTENA DE MILLON------------------------------------------------------------------------------------------------------------	
	if ($longitud==9 || $longitud>9) {	$valor=$caracter[8]; // CENTENA
		if ($valor=='1') {$unidad='cien';};	 		if ($valor=='2') {$unidad='doscientos';};	if ($valor=='3') {$unidad='trescientos';};
		if ($valor=='4') {$unidad='cuatrocientos';};if ($valor=='5') {$unidad='quinientos';};	if ($valor=='6') {$unidad='seiscientos';};
		if ($valor=='7') {$unidad='setecientos';};  if ($valor=='8') {$unidad='ochocientos';};  if ($valor=='9') {$unidad='novecientos';};
		if ($valor=='0') {$unidad='';};if($caracter[6]==0 & $caracter[7]==0 ){$centenademillon=$unidad.' millones ';}else{$centenademillon=$unidad;};
		if ($valor=='1') {	if (!$caracter[6]==0 || !$caracter[7]==0) {	$centenademillon='ciento';} };		};
	$montol="$centenademillon $decenademillon $unidaddemillon $centenademil $decenademil $unidaddemil $centena $decena $uni";
};	?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

convertir números a letras en 100 líneas!

Publicado por xve (6935 intervenciones) el 06/03/2013 08:04:21
Hola Cristian, muchas gracias por mostrarnos tu código, aunque lo veo un poco liado con tantos if's...

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar