Deixar somente as letras de uma string PHP

Esta função retorna somente as letras de uma string informada.

  1. function soLetra($str) {
  2.     return preg_replace("/[^A-Za-z]/", "", $str);
  3. }

  1. function soLetraComAcento($str) {
  2.     return preg_replace("/[^A-Za-zá-üÁ-Ü]/", "", $str);
  3. }

Como usar:

  1. $filtro = soLetra("téste321");

$filtro -> “tste”

  1. $filtro = soLetraComAcento("téste321");

$filtro -> “téste”

Validar CPF

Com esta função você pode validar CPFs, há duas versões, uma para PHP e outra em JS. Bom proveito.

Versão PHP:

  1. function validaCPF($cpf) {
  2.     $cpf = soNumero($cpf);
  3.     $soma = 0;
  4.  
  5.     for ($i = 0; $i < 9; $i++)  {
  6.         $soma += (10$i) * $cpf[$i];
  7.         }
  8.     $digitoVerificador = 11($soma % 11);
  9.  
  10.     if(($soma % 11) < 2) {
  11.         $digitoVerificador = 0;
  12.         }
  13.     if($cpf[9] != $digitoVerificador) {
  14.         return false;
  15.         }
  16.     $soma = 0;
  17.  
  18.     for ($i = 0; $i < 9; $i++)  {
  19.         $soma += (11$i) * $cpf[$i];
  20.         }
  21.     $soma += 2 * $cpf[9];
  22.     $digitoVerificador = 11($soma % 11);
  23.    
  24.     if(($soma % 11) < 2) {
  25.         $digitoVerificador = 0;
  26.         }
  27.     if($cpf[10] != $digitoVerificador) {
  28.         return false;
  29.         }
  30.     return true;
  31. }

Versão Javascript:

  1. function validaCPF(cpf) {
  2.         cpf = soNumero(cpf);
  3.         soma = 0;
  4.        
  5.         for (i = 0; i < 9; i++) {
  6.                 soma += (10 – i) * (eval(cpf.charAt(i)));
  7.         }
  8.         digitoVerificador = 11(soma % 11);
  9.        
  10.         if((soma % 11) < 2) {
  11.                 digitoVerificador = 0;
  12.         }
  13.         if(eval(cpf.charAt(9)) != digitoVerificador) {
  14.                 return false;
  15.         }
  16.         soma = 0;
  17.        
  18.         for (i = 0; i < 9; i++) {
  19.                 soma += (11 – i) * (eval(cpf.charAt(i)));
  20.         }
  21.         soma += 2 * (eval(cpf.charAt(9)));
  22.         digitoVerificador = 11(soma % 11);
  23.        
  24.         if((soma % 11) < 2) {
  25.                 digitoVerificador = 0;
  26.         }
  27.         if(eval(cpf.charAt(10)) != digito_verificador) {
  28.                 return false;
  29.         }
  30.         return true;
  31. }

Calcular distância entre dois pontos GPS

Olá, após um tempinho sem publicar trago uma função que serve para calcular a distância entre dois pontos GPS (com Latitude e Longitude cada). A função é bem simples de utilizar e retorna o resultado em metros.

  1. function distanciaPontosGPS($p1LA, $p1LO, $p2LA, $p2LO) {
  2.     $r = 6371.0;
  3.        
  4.     $p1LA = $p1LA * pi() / 180.0;
  5.     $p1LO = $p1LO * pi() / 180.0;
  6.     $p2LA = $p2LA * pi() / 180.0;
  7.     $p2LO = $p2LO * pi() / 180.0;
  8.        
  9.     $dLat = $p2LA$p1LA;
  10.     $dLong = $p2LO$p1LO;
  11.        
  12.     $a = sin($dLat / 2) * sin($dLat / 2) + cos($p1LA) * cos($p2LA) * sin($dLong / 2) * sin($dLong / 2);
  13.     $c = 2 * atan2(sqrt($a), sqrt(1$a));
  14.        
  15.     return round($r * $c * 1000); // resultado em metros.
  16. }

Como usar:

  1. echo distanciaPontosGPS(-26.91545, -49.063632, -26.917985, -49.061143);

Resultado será: 375

Tempo de carregamento da página

Olá pessoal, vi na net um meio legal e mais correto para saber o tempo que uma página demorou pra processar e chegar no navegador do cliente.

  1. $tempo = mktime()$_SERVER[‘REQUEST_TIME’];

$tempo -> Tempo que demorou para carregar a página a partir da hora em que chegou a requisição no servidor.

Lembre-se: Este código deve ser colocado no final da página, sendo o “último código PHP” da página. Para colocar ele na tela você pode usar como quiser a variável $tempo, obviamente depois de definir ela ^^.

Número de dias entre duas datas

A função abaixo calcula o número de dias existentes entre duas datas informadas no formato brasileiro, podendo ser facilmente alterado.

  1. function diasIntervalo($dataI, $dataF) {
  2.         $diaI = substr($dataI, 0, 2);
  3.         $mesI = substr($dataI, 3, 2);
  4.         $anoI = substr($dataI, 6, 4);
  5.  
  6.         $diaF = substr($dataF, 0, 2);
  7.         $mesF = substr($dataF, 3, 2);
  8.         $anoF = substr($dataF, 6, 4);
  9.  
  10.         $ini = mktime(0,0,0, $mesI, $diaI, $anoI);
  11.         $fim = mktime(0,0,0, $mesF, $diaF, $anoF);
  12.         $dias = round(($fim$ini) / 86400);
  13.  
  14.         return $dias;
  15. }

Como usar:

  1. $dias = diasIntervalo("01/02/2009", "15/03/2009");
  2. $dias -> 42

Cálculo de Juros com PHP

Abaixo estão duas funções para calcular o valor de parcelas de Juros Simples e Juros Composto:

  1. function jurosSimples($valor, $taxa, $parcelas) {
  2.         $taxa = $taxa / 100;
  3.  
  4.         $m = $valor * (1 + $taxa * $parcelas);
  5.         $valParcela = number_format($m / $parcelas, 2, ",", ".");
  6.  
  7.         return $valParcela;
  8. }
  9.  
  10. function jurosComposto($valor, $taxa, $parcelas) {
  11.         $taxa = $taxa / 100;
  12.  
  13.         $valParcela = $valor * pow((1 + $taxa), $parcelas);
  14.         $valParcela = number_format($valParcela / $parcelas, 2, ",", ".");
  15.  
  16.         return $valParcela;
  17. }

Como usar:

  1. $valorParcelaSimples = jurosSimples(3556.00, 1.20, 6);
  2. $valorParcelaComposto = jurosComposto(3556.00, 1.20, 6);
  3.  
  4. $valorParcelaSimples -> 635,34
  5. $valorParcelaComposto -> 636,64

OBS: Os valores são passados no tipo double. Ex: 3.556,00 = 3556.00

Escrever data por extenso

Função para escrever uma data informada por extenso, com opção para cidade.

  1. function dataExtenso($maiuscula = false, $cidade = , $data = ) {
  2.     if($data == ) {
  3.         $dia = date(‘d’);
  4.         $mes = date(‘m’);
  5.         $ano = date(‘Y’);
  6.     }
  7.     else {
  8.         $dia = substr($data, 0, 2);
  9.         $mes = substr($data, 3, 2);
  10.         $ano = substr($data, 6, 4);
  11.     }
  12.  
  13.     $cidade = $cidade != ? $cidade . ‘, ‘ : ;
  14.  
  15.     $meses = array(
  16.     ’01’ => ‘Janeiro’,
  17.     ’02’ => ‘Fevereiro’,
  18.     ’03’ => ‘Março’,
  19.     ’04’ => ‘Abril’,
  20.     ’05’ => ‘Maio’,
  21.     ’06’ => ‘Junho’,
  22.     ’07’ => ‘Julho’,
  23.     ’08’ => ‘Agosto’,
  24.     ’09’ => ‘Setembro’,
  25.     ’10’ => ‘Outubro’,
  26.     ’11’ => ‘Novembro’,
  27.     ’12’ => ‘Dezembro’);
  28.  
  29.     if(!$maiuscula) {
  30.         $retorno = $cidade . str_pad($dia, 2‘0’, STR_PAD_LEFT)‘ de ‘ . $meses[$mes]‘ de ‘ . $ano;
  31.     }
  32.     else {
  33.         $retorno = strtoupper($cidade . str_pad($dia, 2‘0’, STR_PAD_LEFT)‘ de ‘ . $meses[$mes]‘ de ‘ . $ano);
  34.     }
  35.     return $retorno;
  36. }

Como usar:

  1. echo dataExtenso();

Deixar somente os números de uma String PHP

Esta função retorna somente os números de uma string informada.

  1. function soNumero($str) {
  2.     return preg_replace("/[^0-9]/", "", $str);
  3. }

Como usar:

  1. $filtro = soNumero("teste321");

$filtro -> “321”

Redimensionamento de Imagens

Muitos sites hoje vistos pela web tem algum álbum de fotos ou algo parecido neles, então neste artigo veremos como fazer um redimensionador de imagens em PHP para que possa ser utilizado para padronizar o tamanho das imagens postadas no mesmo, inclusive podendo colocar uma “marca d’agua” nas imagens para os casos específicos e até rotacioná-las.

Vale lembrar que o PHP, ou melhor, a biblioteca de tratamento de imagens do PHP chamada de GD2, não é e não tem o objetivo de ser um “Photoshop”, mas supre as necessidades básicas para o tratamento de imagens para WEB. Devemos também saber que o resultado do uso desta biblioteca depende muito da imagem que será tratada, e que aumentar uma imagem através da biblioteca pode fazer com que perca significadamente sua qualidade.

Muito bem, para começarmos precisamos que a biblioteca GD2 do PHP esteja “descomentada” no arquivo PHP.INI no caso de usuários Windows, para usuários Linux será necessário recompilar o PHP com a biblioteca.
Com a GD2 habilitada, vamos a classe que será responsável pelo redimensionamento de imagens que se encontra no link abaixo.

Classe Resize