Trabalhando com valores de moeda com PHP

Ao fazer uma aplicação trabalhando valores de moeda com PHP, nos deparamos com a situação de que o mysql só entende valores com ponto “.” para separar as casas decimais. E como nós aqui no Brasil utilizamos a vírgula, temos um pequeno probleminha chato para resolver…

Tenha em mente que este artigo serve para uma situação bastante específica, conforme descrevo. Por isso, se você está em busca de trabalhar com valores monetários de forma genérica, recomendo a função numfmt_format_currency().

Acho que nem preciso dizer que sempre que você for criar uma aplicação que trabalhe com valores de moeda, existirá essa situação para contornar. Portanto, se você estiver iniciando no PHP agora, vá se acostumando com isso.

Trabalhando com valores de moeda com PHP

Geralmente aplicativos comerciais, financeiros e econômicos trabalham com valores em moeda, e será preciso convertê-los para trabalhar internamente no sistema e também para exibir os números para os usuários.

Ex: R$57,58 -> você precisará inserir no BD 57.58, caso contrário, só será salvo o valor 57

Para inserir no BD um valor onde o usuário separa as casas decimais com vírgula

<?php

//valor passado via POST com vírgula
$get_valor = $_POST['valor'];

//verifica se o valor não possui ponto e contem vírgula
if(!strpos($get_valor,".") && (strpos($get_valor,",")))

//substitui ponto por vírgula
$get_valor = substr_replace($get_valor, '.', strpos($get_valor, ","), 1);

Pegar valor com ponto no BD e exibir numa página com vírgula

<?php

//substituímos o ponto pela vírgula dentro da variável
echo str_replace(".",",",$exibe['valor']);

Se você tiver qualquer dúvida a respeito de como trabalhar com moeda no PHP, basta deixar sua pergunta no campo destinado aos comentários logo abaixo, que terei prazer em lhe ajudar.