type strip_tags remove funciona ejemplo content php numbers words

remove - strip_tags php ejemplo



PHP: NĂºmero expresado en palabras (3)

En caso de utilizar Yii2 puede hacerlo de la siguiente manera:

$sum = 100500; echo Yii::$app->formatter->asSpellout($sum);

Esto imprime $sum enunciado en el idioma de su aplicación.

reference documentos

Esta pregunta ya tiene una respuesta aquí:

¿Hay alguna función que exprese cualquier número dado en palabras?

Por ejemplo:

Si un número es 1432 , entonces esta función devolverá "mil cuatrocientos treinta y dos".


Puede hacer esto de muchas maneras. Menciono aquí dos formas al usar la clase NumberFormatter como se menciona en la respuesta de Martindilling (si tiene la versión de php 5.3.0 o superior y también la extensión de PECL 1.0.0 o superior) o con la siguiente personalización función.

function convertNumberToWord($num = false) { $num = str_replace(array('','', '' ''), '''' , trim($num)); if(! $num) { return false; } $num = (int) $num; $words = array(); $list1 = array('''', ''one'', ''two'', ''three'', ''four'', ''five'', ''six'', ''seven'', ''eight'', ''nine'', ''ten'', ''eleven'', ''twelve'', ''thirteen'', ''fourteen'', ''fifteen'', ''sixteen'', ''seventeen'', ''eighteen'', ''nineteen'' ); $list2 = array('''', ''ten'', ''twenty'', ''thirty'', ''forty'', ''fifty'', ''sixty'', ''seventy'', ''eighty'', ''ninety'', ''hundred''); $list3 = array('''', ''thousand'', ''million'', ''billion'', ''trillion'', ''quadrillion'', ''quintillion'', ''sextillion'', ''septillion'', ''octillion'', ''nonillion'', ''decillion'', ''undecillion'', ''duodecillion'', ''tredecillion'', ''quattuordecillion'', ''quindecillion'', ''sexdecillion'', ''septendecillion'', ''octodecillion'', ''novemdecillion'', ''vigintillion'' ); $num_length = strlen($num); $levels = (int) (($num_length + 2) / 3); $max_length = $levels * 3; $num = substr(''00'' . $num, -$max_length); $num_levels = str_split($num, 3); for ($i = 0; $i < count($num_levels); $i++) { $levels--; $hundreds = (int) ($num_levels[$i] / 100); $hundreds = ($hundreds ? '' '' . $list1[$hundreds] . '' hundred'' . '' '' : ''''); $tens = (int) ($num_levels[$i] % 100); $singles = ''''; if ( $tens < 20 ) { $tens = ($tens ? '' '' . $list1[$tens] . '' '' : '''' ); } else { $tens = (int)($tens / 10); $tens = '' '' . $list2[$tens] . '' ''; $singles = (int) ($num_levels[$i] % 10); $singles = '' '' . $list1[$singles] . '' ''; } $words[] = $hundreds . $tens . $singles . ( ( $levels && ( int ) ( $num_levels[$i] ) ) ? '' '' . $list3[$levels] . '' '' : '''' ); } //end for loop $commas = count($words); if ($commas > 1) { $commas = $commas - 1; } return implode('' '', $words); }


Use la clase NumberFormatter que se encuentra en php;)

$f = new NumberFormatter("en", NumberFormatter::SPELLOUT); echo $f->format(1432);

Eso produciría "mil cuatrocientos treinta y dos"