+ Responder ao Tópico



  1. olá galera estou com problemas para montar um código que preciso entregar ate domingo, preciso fazer um código em php que mostre o numero digitado por extenso usando substr, eu cheguei perto, mas ainda está havendo bugs, quando escrevo "111", ele escreve "cento e e um", ou quando usou qual numero com zero ele escreve o zero, se eu digitar por exemplo 109, ele escreve "cento e e nove", ou 100 "cento e e zero" e assim vai, não sei como resolver, vou postar o código aki
    <?php


    $unidade = array("zero","um","dois","três","quatro","cinco","seis","sete","oito","nove","dez","onze","doze","treze","quatorze","quinze","dezesseis","dezessete","dezoito","dezenove");
    $dezenas = array("","","vinte","trinta","quarenta","cinquenta","sessenta","setenta","oitenta","noventa","cem");
    $centenas= array("","cento","duzentos","trezentos","quatrocentos","quinhentos","seisssentos","setessentos","oitossentos","novessentos","mil");


    $numero= $_REQUEST["txtnumero"];
    if ($numero <20){
    print $unidade[$numero];
    }
    else {
    if ($numero <100) {
    $exdezenas = substr($numero,0,1);
    $exunidade = substr($numero,1,1);
    print $dezenas[$exdezenas] ." e ". $unidade[$exunidade];
    } else {
    $excentenas = substr($numero,0,1);
    $exdezenas = substr($numero,1,1);
    $exunidade = substr($numero,2,1);
    print $centenas[$excentenas] ." e ". $dezenas[$exdezenas] ." e ". $unidade[$exunidade];
    }}


    ?>

  2. Não analisei o código completo, mas não seria melhor você testar as dezenas e unidades após a centena para só então imprimir ou não o "E"?

    Se observar, para todo caso acima de 100 ele imprime a centena E dezena E unidade, mas num exemplo simples, 120 por exemplo é = CENTO E VINTE e não CENTO E VINTE E ZERO.

    No caso do zero no meio do número sumir é justamente por conta da sintaxe da substr para dezenas, não existe dezena começada em zero.



  3. PRIMEIRO:

    Entenda que o comando substr (quando você conhece a posição de início de uma substring desejada) recebe a string principal e a posição de início da substring a ser obtida.

    veja a sintaxe:

    (string) substr(<string>, <posição_inicial>[, <tamanho_substring>]);

    retorno: a substring constituída pela posição inicial até atingir o final da string principal ou alcançar o tamanho da substring.


    SEGUNDO:

    A partir do comando substr é que vc determina a posição no array. Nosso colega acima está certíssimo, cuidado na hora do comando PRINT ou ECHO.

    Verifique a sua posição no array e tente utilizar o comando strlen pra determinar o tamanho da string e assim obter o valor para desejado para usar o comando de controle IF.

  4. Citação Postado originalmente por KiritoKaiba Ver Post
    olá galera estou com problemas para montar um código que preciso entregar ate domingo, preciso fazer um código em php que mostre o numero digitado por extenso usando substr, eu cheguei perto, mas ainda está havendo bugs, quando escrevo "111", ele escreve "cento e e um", ou quando usou qual numero com zero ele escreve o zero, se eu digitar por exemplo 109, ele escreve "cento e e nove", ou 100 "cento e e zero" e assim vai, não sei como resolver, vou postar o código aki
    <?php


    $unidade = array("zero","um","dois","três","quatro","cinco","seis","sete","oito","nove","dez","onze","doze","treze","quatorze","quinze","dezesseis","dezessete","dezoito","dezenove");
    $dezenas = array("","","vinte","trinta","quarenta","cinquenta","sessenta","setenta","oitenta","noventa","cem");
    $centenas= array("","cento","duzentos","trezentos","quatrocentos","quinhentos","seisssentos","setessentos","oitossentos","novessentos","mil");


    $numero= $_REQUEST["txtnumero"];
    if ($numero <20){
    print $unidade[$numero];
    }
    else {
    if ($numero <100) {
    $exdezenas = substr($numero,0,1);
    $exunidade = substr($numero,1,1);
    print $dezenas[$exdezenas] ." e ". $unidade[$exunidade];
    } else {
    $excentenas = substr($numero,0,1);
    $exdezenas = substr($numero,1,1);
    $exunidade = substr($numero,2,1);
    print $centenas[$excentenas] ." e ". $dezenas[$exdezenas] ." e ". $unidade[$exunidade];
    }}


    ?>
    talvez ajude
    http://www.vivaolinux.com.br/script/...os-por-extenso






Tópicos Similares

  1. Upload de arquivo com PHP
    Por Fly no fórum Linguagens de Programação
    Respostas: 8
    Último Post: 13-12-2002, 16:18
  2. Duvida com PHP
    Por Fly no fórum Linguagens de Programação
    Respostas: 1
    Último Post: 13-12-2002, 09:57
  3. Instalando um apache com php e suporte a Oci8 num conectiva
    Por Futuremax no fórum Servidores de Rede
    Respostas: 0
    Último Post: 11-12-2002, 15:23
  4. Dúvida com IpTables
    Por no fórum Segurança
    Respostas: 6
    Último Post: 29-10-2002, 10:49
  5. duvidas com o email
    Por pensador-ce no fórum Servidores de Rede
    Respostas: 1
    Último Post: 21-10-2002, 05:21

Visite: BR-Linux ·  VivaOLinux ·  Dicas-L