kingless 0 Denunciar post Postado Fevereiro 6, 2007 Acabei de criar uma simples calculadora em PHP, é muito simples porque fiz tudo a correr (1 hora) por enquanto só é possível calcular 2 números de cada vez e deve ter algumas bugs. :rolleyes: Demo: http://www.kingless.net/calc.php Download: http://www.kingless.net/download.php?filename=calc.php Source Code: http://www.kingless.net/download.php?filen...calc.php;source <?php //////////////////////////// //// Calculadora em PHP //// /// by kingless /// // <blastelf@gmail.com> // ////////////////////////////?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>Calculadora criada por kingless - blastelf@gmail.com</title><style type="text/css">td {color: #FFFF00;font-weight: bold;text-align: center;border: 1px solid #000099;}input#calc {background-color: #759475;text-align: right;color: #222722;border-color: #000099;}table#calculadora {border: 1px solid #000099;background-color: #3300cc;}#titulo {font-family: arial, verdana, sans serif;font-size: 1em;font-weight: bold;text-align: center;}</style></head><body><?phpclass calculadora { var $nums = ''; var $calc = ''; var $op = ''; function mostrar () { $num = @$_GET['num'][0]; $calc = @$_GET['calc']; if(empty( $num ) AND empty( $calc )) { return false; } if(!isset( $display )) { $display = $calc; } $this->nums .= empty( $num ) ? $display : $display.$num; $this->setOperacao(); if(!empty( $this->op )) { $this->calc = $this->nums.rawurldecode( $this->op ).$num; } return $this->calcular(); } function setOperacao () { if(!empty( $_GET['op'] )) { $this->op = $_GET['op']; } } function calcular() { $calc = empty( $this->calc ) ? $this->nums : $this->calc; if(isset( $_GET['resultado'] )) { if(preg_match( '/^([0-9]+)(\/|\*|\+|\-)([0-9]+)+$/', $calc, $match )) { switch( $match[2] ) { case "+": return $match[1]+$match[3]; break; case "-": return $match[1]-$match[3]; break; case "/": return $match[1]/$match[3]; break; case "*": return $match[1]*$match[3]; break; } } else { return "Ocorreu um erro"; } } return $calc; }}$calc = new calculadora();?><form action="" method="get"><!-- Calculadora criada por kingless <blastelf@gmail.com> --><table id="calculadora" cellpadding="10" cellspacing="0" align="center"><tr> <td align="center" colspan="4"> <span id="titulo">Calculadora</span><br/> <input id="calc" type="text" name="calc" value="<?=$calc->mostrar();?>" /> </td></tr><tr> <td> <input type="submit" name="num[]" value="7" /> </td> <td> <input type="submit" name="num[]" value="8" /> </td> <td> <input type="submit" name="num[]" value="9" /> </td> <td> <input type="submit" name="op" value="/" /> </td></tr><tr> <td> <input type="submit" name="num[]" value="4" /> </td> <td> <input type="submit" name="num[]" value="5" /> </td> <td> <input type="submit" name="num[]" value="6" /> </td> <td> <input type="submit" name="op" value="*" /> </td></tr><tr> <td> <input type="submit" name="num[]" value="1" /> </td> <td> <input type="submit" name="num[]" value="2" /> </td> <td> <input type="submit" name="num[]" value="3" /> </td> <td> <input type="submit" name="op" value="-" /> </td></tr><tr> <td> <input type="submit" name="num[]" value="0" /> </td> <td> <input type="submit" name="num[]" value="." /> </td> <td> <input type="submit" name="resultado" value="=" /> </td> <td> <input type="submit" name="op" value="+" /> </td></tr></table></form></body></html> Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 7, 2007 Nao é muito vantajoso fazer uma calculadora em php, ainda mais que a cada clique voce esta submetendo o formulario, voce poderia usar ajax para retornar esse problema, mas ficaria bem mais leve feito só com javascript Compartilhar este post Link para o post Compartilhar em outros sites
kingless 0 Denunciar post Postado Fevereiro 7, 2007 Nao é muito vantajoso fazer uma calculadora em php, ainda mais que a cada clique voce esta submetendo o formulario, voce poderia usar ajax para retornar esse problema, mas ficaria bem mais leve feito só com javascriptvocê não é a primeira pessoa que me diz isso e vou dizer o mesmo que disse as outras, é verdade que poderia usar ajax e seria muito mais fácil fazer em javascript do que PHP mas como eu queria treinar o meu PHP foi por isso que fiz tudo em PHP http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Nemesys 0 Denunciar post Postado Fevereiro 7, 2007 Ahn...num é mais fácil winkey+r e depois "calc"??? Compartilhar este post Link para o post Compartilhar em outros sites
nvGullit 0 Denunciar post Postado Fevereiro 7, 2007 legal kra, só q agora pra você treinar + seu php você poderia agrupar esta calc usando ajx tbm no meio, isso poderia ser muito + vantajoso! Compartilhar este post Link para o post Compartilhar em outros sites
kingless 0 Denunciar post Postado Fevereiro 7, 2007 Acabei de adicionar mais uma pequena função ao meu script de downloads para mostrar a source code com sintaxe colorida. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://www.kingless.net/download.php?filen...calc.php;source Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 7, 2007 Falando em treinar mais o PHP, voce poderia criar uma classe para PHP5, pois no PHP5 nao existe "var" e sim visibilidade http://br.php.net/manual/pt_BR/language.oop5.visibility.php e construtores e destrutores http://br.php.net/manual/pt_BR/language.oop5.decon.php e evite usar o @ arroba para esconder erros, use isset() para fazer a verificação da variavel exemplo: no lugar disso: $calc = @$_GET['calc']; use assim: $calc = isset($_GET['calc']) ? $_GET['calc'] : ""; Compartilhar este post Link para o post Compartilhar em outros sites
kingless 0 Denunciar post Postado Fevereiro 7, 2007 Fabyo eu poderia criar uma classe para PHP 4 e outra para PHP 5 mas não criei porque a classe que eu criei funciona no PHP 4 e PHP 5 não vejo necessidade de estar a criar duas classes uma para PHP 4 e outra para PHP 5. (não pense que não sei trabalhar com OOP 5 :P) Quanto ao evitar @ eu só utilizei o @ enquanto testava o script e nem me lembrei de tirar o @ quando acabei o script mas ainda bem que você me lembrou. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif PS: Quando eu disse que tava treinando PHP não tava dizendo que não sabia PHP ou estava aprendendo PHP, eu sei programar bem em PHP quando disse que eu tava treinando PHP eu queria dizer que estava melhorando a minha capacidade de desenvolver vários tipos de aplicações em PHP. Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Fevereiro 8, 2007 Nao me leve a mal, só estamos conversando, quando voce disse que só esta melhorando a sua capacidade de desenvolver, foi exatamente o que eu falei sobre PHP5, php4 é passado e muito mais limitado que o PHP5 se quer evoluir com certeza é usando o PHP5 e suas funcionalidades novas mas beleza nao me leve a mal, só comentei Compartilhar este post Link para o post Compartilhar em outros sites
kingless 0 Denunciar post Postado Fevereiro 8, 2007 Não levei a mal não http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Como a maioria dos servidores têm PHP 4 instalado é por isso que desenvolvo mais aplicações com classes do PHP 4 apenas por questões de compatibilidade, mas vou seguir o seu conselho e vou me dedicar mais ao PHP 5, valeu. Compartilhar este post Link para o post Compartilhar em outros sites
kingless 0 Denunciar post Postado Fevereiro 8, 2007 Um membro da comunidade "portugal a programar" criou uma versão desta calculadora em Ajax quem quiser ver aqui clique aqui http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites