terça-feira, 29 de junho de 2010

Enviando email com anexo no PHP

O CÓDIGO:


function enviaEmailAnexo($emailFrom, $titulo, $mensagem, $emailTo, $cc = '', $bcc = '', $arquivo, $pasta) {
if (!$arquivo) return false;

$urlArquivo = $pasta.$arquivo;

$fp = fopen($urlArquivo,"rb");
$anexo = fread($fp,filesize($urlArquivo));          
$anexo = base64_encode($anexo);
fclose($fp);
$anexo = chunk_split($anexo);

$boundary = "XYZ-".date("dmYis")."-ZYX";

$quebra = (strpos($_ENV['SERVER_SOFTWARE'], "Microsoft") === false)?"\n":"\r\n";

$mens = "--$boundary".$quebra;
$mens .= "Content-Transfer-Encoding: 8bit".$quebra;
$mens .= "Content-Type: text/html; charset=\"ISO-8859-1\"".$quebra.$quebra; //plain
$mens .= $mensagem.$quebra;
$mens .= "--$boundary".$quebra;
$mens .= "Content-Type: ".mime_content_type2($arquivo).$quebra;
$mens .= "Content-Disposition: attachment; filename=\"".$arquivo."\"".$quebra;
$mens .= "Content-Transfer-Encoding: base64".$quebra.$quebra;
$mens .= $anexo.$quebra;
$mens .= "--$boundary--".$quebra;

$headers = "MIME-Version: 1.0".$quebra;
$headers .= "From: ".$emailFrom.$quebra;
$headers .= "Reply-To: ".$emailFrom.$quebra;
$headers .= "Return-Path: ".$emailFrom.$quebra;
$headers .= "Message-ID: <".time()." TheSystem@".$_SERVER['SERVER_NAME'].">".$quebra;
$headers .= "X-Mailer: PHP v".phpversion().$quebra;
$headers .= "Content-type: multipart/mixed; boundary=\"$boundary\"".$quebra;
$headers .= "$boundary".$quebra;

if (!mail($emailTo, $titulo, $mens, $headers)) return false;
return true;
}


O USO:


enviaEmailAnexo($emailFrom, $titulo, $mensagem, $emailTo, $cc = '', $bcc = '', $arquivo, $pasta);


hasta!

segunda-feira, 28 de junho de 2010

Como remover registros duplicados no MySQL

Quem nunca teve este problema?
Pois é.

Vamos a solução:

O CÓDIGO:


ALTER IGNORE TABLE dups ADD UNIQUE INDEX dupidx (dup_fld1 [, dup_fldx]);
ALTER TABLE dups DROP INDEX dupidx;



A EXPLICAÇÃO:


É criado um índice temporário (dupidx) baseado nos campos desejados ( dup_fld1 [, dup_fldx] )  que exclui todos os registros duplicados da tabela (dups). Após a "limpeza", o índice é excluido.

hasta!

quarta-feira, 23 de junho de 2010

Formatação de Moeda JavaScript (R$)

O CÓDIGO:


function moeda(valor, casas, separdor_decimal, separador_milhar){

var valor_total = parseInt(valor * (Math.pow(10,casas)));
var inteiros =  parseInt(parseInt(valor * (Math.pow(10,casas))) / parseFloat(Math.pow(10,casas)));
var centavos = parseInt(parseInt(valor * (Math.pow(10,casas))) % parseFloat(Math.pow(10,casas)));


if(centavos%10 == 0 && centavos+"".length<2 ){
centavos = centavos+"0";
}else if(centavos<10){
centavos = "0"+centavos;
}

var milhares = parseInt(inteiros/1000);
inteiros = inteiros % 1000;

var retorno = "";

if(milhares>0){
retorno = milhares+""+separador_milhar+""+retorno
if(inteiros == 0){
inteiros = "000";
} else if(inteiros < 10){
inteiros = "00"+inteiros;
} else if(inteiros < 100){
inteiros = "0"+inteiros;
}
}
retorno += inteiros+""+separdor_decimal+""+centavos;


return retorno;

}





O USO:

moeda(1234.5,2,',','.');
// 1.234,50