Função para validar CPF em PHP

Esta é uma função simples feita em PHP para validar um CPF. A função pode ocorrer alguns erros, foi testada em alguns CPFs e retornou como esperado. Então, antes de aplicá-la em sua página, teste-a. Para nós programadores, quando criamos uma função precisamos que outra pessoa, que não conheça a função/script para realizar corretamente os testes. Mas é isso, abaixo a função.

<?php
function CPF($cpf){
  $caracteres = array('.','-');
  $CPF = str_replace($caracteres, "", $cpf);
  /*ENCONTRA PRIMEIRO DIGITO*/
  $soma = 0;
  for($i=0;$i<=8;$i++){
    $soma += substr($CPF, $i, 1)*(10-$i);
  }
  $soma = $soma-((substr(($soma/11), 0,2))*11);
  if ($soma<=1) $div1 = 0; else $div1 = 11-$soma;
  /*ENCONTRA SEGUNDO DIGITO*/
  $soma = 0;
  for($i=0;$i<=8;$i++){
    $soma += substr($CPF, $i, 1)*(11-$i);
  }
  $soma += ($div1*2);
  $soma = $soma-((substr(($soma/11), 0,2))*11);
  if ($soma<=1) $div2 = 0; else $div2 = 11-$soma;
  /*RESULTADO*/ 
  $result = $div1.$div2;
  $final = substr($CPF, 9,2);
  if ( $result == $final )
    return 'CPF nº <u>'.$cpf.'</u> válido';
  else
    return 'CPF nº <u>'.$cpf.'</u> inválido';
}
echo CPF("012.098.765-15");
?>
Um abraço a todos. Até a próxima.
[ leia mais ]

Como configurar um dominio no uolhost para o blogger?

Como configurar um dominio no uolhost para o blogger? A resposta a essa pergunta é simples. Se você cadastrou seu dominio no UOLHOST, então siga os passos abaixo para configurar o redirecionamento da página para seu blog.

Acesse o seu painel no UOLHOST, na pá principal, clique no link VER MEUS DOMÍNIOS / MUDAR AUTORIDADE DNS, serão mostrados todos os seus dominios cadastrados, selecione o que deseja alterar a configuração. Depois de marcado o dominio, vá na opção Ações disponíveis e escolha Gerenciar zona DNS.

Selecionando esta opção, serão mostrados seus dominios cadastrados novamente. Selecione novamente o dominio que deseja alterar e no campo Mais Ações, selecione Gerenciar DNS. Observe que será mostrados várias configurações de DNS pré-cadastradas pela UOLHOST.

OBS: Muito cuidado, qualquer alteração errada, pode desconfigurar todo o site.

Agora, já estamos prontos para configurar nosso DNS. Vamos adciona-los.

Primeira configuração:
No campo Tipo, selecione CNAME
No campo Entrada, preencha com www
No campo Valor, preencha com ghs.google.com

Agora, vá ao painel do Blogger.com, na opção Configurações >> Publicação, clique no link Alternar para: • Domínio personalizado. Como suponho que já possua o dominio cadastrado, clique em Ir para configurações avançadas, informe o seu dominio no campo Seu dominio. Salve e aguarde alguns minutos e teste o seu dominio redirecionado para o seu blogger.

Caso deseje o seu link como por exemplo http://blog.seudominio.com.br, terá que cadastrar o DNS CNAME como blog ao invés de www , e o mesmo vale para o blogger. Se cadastrar o DNS como www, o dominio no blogger terá que ser www, e vice-versa.

Dúvidas? Poste nos comentários.
[ leia mais ]

Esconder DIV ao clicar fora dela

Procurando pela net, encontrei um código que faz com que, ao clicar fora de um determinado elemento, este fique escondido na tela.

Logicamente não tomarei os créditos pelo feito, então informo que o código foi encontrado no site http://www.codigosnaweb.com/  no link que se segue: http://www.codigosnaweb.com/Ocultar-a-div-ao-clicar-fora/3/1016.

Este script faz o seguinte, pega o evento onclick na página, depois, verifica se o mesmo foi ocorreu no elemento de id='clica', nisso, quando o usuário executar o onclick, se clicar fora da elemento visível, este se tornará invisível. Segue o código:

<script>
document.onclick=evento;
function evento(e){ 
var target = (e && e.target) || (event && event.srcElement); 
var obj = document.getElementById('minhadiv'); 
var obj2 = document.getElementById('clica'); 
checkParent(target)?obj.style.display='none':null; 
target==obj2?obj.style.display='block':null; 
} 
function checkParent(t){ 
while(t.parentNode){ 
if(t==document.getElementById('minhadiv')){ 
return false 
} 
t=t.parentNode 
} 
return true 
} </script>

Agora, em sua página, utilize o link que abrirár o elemento (por exemplo uma div) da seguinte forma:
<div id="clica">mostrar div</div>
E o elemento (por exemplo uma div) da seguinte forma:
<div id="minhadiv">meu conteúdo aqui</div>
Abraços, até a próxima.
[ leia mais ]

Códigos formatados no blogger

Andei procurando pela net uma forma de colocar os scripts/códigos que insiro em minhas postagens, de forma que esles ficassem formatados, bonitinhos, facilitando assim a leitura e entendimento pelo usuário.

Em uma dessa pesquisas, encontrei o chamado Syntax Highlighter da Google, este, é um script em JavasScript que proporciona que blog e/ou  site identificar o código postado formatando-o com cores e demais necessidade que ajude a identifica-lo.



Para tornar mais fácil o entendimento, veja abaixo um código simples de html, e observe que ele fica em um formato até mesmo com número de linhas

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Teste</title>
</head>
<body>
</body>
</html>

Para utilizar-lo no blog e/ou site, é preciso que seja adcionado é muito simples, primeiro você deve baixar os arquivos necessários do Syntax Highlighter nesse link,

Com os arquivos já baixados, basta adicionar o código abaixo no final do seu html (no Blogger, modo Editar HTML), antes do fechamento das tags </body> e <html>.

OBS:Você pode baixar os arquivos, e hospedá-los em um servidor e depois utilizar os links para esses arquivo a partir do seu servidor, porém, pode também utilizar os links dos arquivos diretamente do Google, como no exemplo que utilizo abaixo.

<!--GOOGLE SyntaxHighlighter-->

<link href='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Styles/SyntaxHighlighter.css' rel='stylesheet' type='text/css'/> 
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shCore.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushCSharp.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushPhp.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushJScript.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushJava.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushVb.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushSql.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushXml.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushDelphi.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushPython.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushRuby.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushCss.js'/>
<script class='javascript' src='http://syntaxhighlighter.googlecode.com/svn/tags/1.5.1/Scripts/shBrushCpp.js'/>
<script class='javascript'> 
//<![CDATA[ 
function FindTagsByName(container, name, Tag) 
{ 
var elements = document.getElementsByTagName(Tag); 
for (var i = 0; i < elements.length; i++) 
{ 
if (elements[i].getAttribute("name") == name) 
{ 
container.push(elements[i]); 
} 
} 
} 
var elements = []; 
FindTagsByName(elements, "code", "pre"); 
FindTagsByName(elements, "code", "textarea"); 
for(var i=0; i < elements.length; i++) { 
if(elements[i].nodeName.toUpperCase() == "TEXTAREA") { 
var childNode = elements[i].childNodes[0]; 
var newNode = document.createTextNode(childNode.nodeValue.replace(/<br\s*\/?>/gi,'\n')); 
elements[i].replaceChild(newNode, childNode); 
} 
else if(elements[i].nodeName.toUpperCase() == "PRE") { 
brs = elements[i].getElementsByTagName("br"); 
for(var j = 0, brLength = brs.length; j < brLength; j++) { 
var newNode = document.createTextNode("\n"); 
elements[i].replaceChild(newNode, brs[0]); 
} 
} 
} 
//clipboard does not work well, no line breaks 
// dp.SyntaxHighlighter.ClipboardSwf = 
//"http://[YOUR HOST]/clipboard.swf"; 
dp.SyntaxHighlighter.HighlightAll("code"); 
//]]> 
</script> 
<!--GOOGLE SyntaxHighlighter-->


Feita a alteração em seu HTML, no campo onde for digitar suas postagens, digitar seus códigos/scripts dentro de tags como <pre name="code" class="<nome_da_linguagem>">, dentro da class, você deverá informar qual tipo de linguagem utilizada, por exe: html, php, js, etc.

No exemplo do HTML acima utilizei a tag <pre> da seguinte forma:

<pre name="code" class="html">
Meu código html
</pre>

Bom, é isso ai, qualquer dúvida, deixem nos comentários.
[ leia mais ]

Hospedagem gratuita de imagens

O site http://tinypic.com/, disponibiliza o envio de imagens gratuita para hospedagem online. Quando criamos um blog por exemplo, necessitamos de hosdedar algumas imagens para serem exibidas no mesmo, assim, acessar o site, e enviar sua imagem, ele disponibilizará um link para que a imagem seja acessada posteriormente. [ leia mais ]

Link leia mais no blog

Para colocar um link leia mais em seu blog, é muito simples, ir no Editar HTML, e procurar pelo texto , e subistituí-lo por este abaixo:
<b:if cond='data:blog.pageType == "item"'>
<style>#fullpost{display:inline;} #leiamais{display:inline;}</style>
<data:post.body/>
<b:else/>

<style>#fullpost{display:none;}</style>
<data:post.body/>
<b:if cond='data:blog.pageType != "item"'><br />
<a expr:href='data:post.url'>Leia mais</a>
</b:if>
</b:if> 
Agora, para que funcione corretamente, quando for postar em seu blogger, faça assim:

Digite o conteúdo resumido do post aqui
<span id="fullpost">
Digite o restante resumido do post aqui
</span>

Dúvidas, deixem nos comentários.
[ leia mais ]

Função para retirar acentos em php

Olá pessoal. Algumas vezes precisamos de trabalhar strings (textos) em php. Recentemente precisei retirar acentos em algumas strings, e o que resolvi fazer foi uma função para isso. Veja abaixo:
function Acentos($TEXTO){
$Validos   = array("A"  , "a"  , "A"  , "a"  , "A"  , "a"  , "A"  , "a"  , "E"  , "e"  , "E"  , "e"  , "E"  , "e"  , "I"  , "i"  , "O"  , "o"  , "O"  , "o"  , "O"  , "o"  , "U"  , "u"  , "U"  , "u"  , "U"  , "u" , "c" , "C" );


$Invalidos  = array("Á"  , "á"  , "À"  , "à"  , "Â"  , "â"  , "Ã"  , "ã"  , "É"  , "é"  , "È"  , "è"  , "Ê"  , "ê"  , "Í"  , "í"  , "Ó"  , "ó"  , "Ô"  , "ô"  , "Õ"  , "õ"  , "Ú"  , "ú"  , "Ù"  , "ù"  , "Ü"  , "ü" , "ç" ,"Ç" );
$Acentos  = array("`" , "´" , "^" , "\"" , "~" );
$TEXTO   = str_replace($Invalidos, $Validos, $TEXTO);
$TEXTO   = str_replace($Acentos, "", $TEXTO);
return $TEXTO;
}
Esta retornará a string sem os acentos. Inclusive os cedilhas (ç). Para retornar a string em sua página, para quem não sabe, basta fazer assim:
$texto = Acentos('áéíóú');
echo $texto;
Abraços. Qualque dúvida. Postem no comentário. [ leia mais ]

Voltando das férias

A todos os leitores, hoje volto a atualizar o blog. Estava curtindo umas ferias do trabalho. Mas estamos retornando para atualizaçãoes.

Um abraço. Aguardem! [ leia mais ]

Feliz Natal 2009



Que o verdadeiro aniversariante do dia, Jesus Cristo esteja presente em suas vidas e em seus corações. Viva este Natal, mas não se esuqeça de presentar Jesus. ele espera por você.
Um forte abraço e que Deus abençoe a todos.


Atenciosamente,
Claudeci Goularte
Administrador do CgnaWeb

[ leia mais ]

Curso de PHP - Aula 13 - Comandos de Repetição

While

O While é um comando de repretição (laço) mais simples. Ele testa uma condição e executa um comando até que a condição seja false. Assim como o if o While possui duas formas de sintaxe. Vejamos exemplo:
<?php
$x = 1;
while($x < 10){
echo "$x = ".$x."<br>";
$x++;
}
$y = 10;
while($y > 0):
echo "$y = ".$y."<br>";
$y--;
endwhile
?>

Do...While

O laço do while é bastante semelhante ao while, com uma simples diferença que a exressão é testa no final do bloco, sendo que os comandos são executados pelo menos uma vez, já que preciso para antes por eles para que realizar os testes. Veja o exemplo a seguir:
<?php
$x = 0;
do{
echo ++$x."<br>";
}while( $x < 10 )
?>
No comando while ou do...while muitas vezes necessitados incrementar ou decrementar a variável de controle no final no laço. Para isso, temos comando for que trabalha principalmente desta forma, testando e incrementando ou decrementando a variável de controle. Vejamos abaixo.

For

O tipo de laço mais completo no PHP é o comando for. Ele trabalha definindo a inicialização do comando, que seria a definição da variável de controle, a condição e por fim, incremento ou decremento. Ele possui três formas de sintaxe assim como o if. A três expressões entre parênteses têm as seguintes finalidades:

Inicialização: Comando ou sequência de comandos a serem realizados antes do início do laço. Serve para inica variável.
Condição: Expressão que define se os comandos que estão dentro do laço são executados ou não. Enquanto a espressão por verdadeira os comandos serão executados.
Incremento ou Decremento: Comando que será executado ao final do laço. Serve para atualizar o valor da variável de controle.

Veja o exemplo a seguir:
<?
#.SINTAXE PRIMEIRA........
for($i=0;$i < 15; $i++)
echo "o valor de $i é ".$i."<br>";
#.SINTAXE SEGUNDA........
for($i=0;$i < 15; $i++){
echo "o valor de $i é ".$i."<br>";
}
#.SINTAXE TERCEIRA........
for($i=0;$i < 15; $i++):
echo "o valor de $i é ".$i."<br>";
endfor
?>
Foreach

O foreach fornece um jeito mais fácil de navegar entre os elementos de um array. Este comando foi atribuído ao PHP4 em diante, ou seja, não está disponível em versões anteriores. Ele possui duas sintaxes. A primeira forma vai do primeiro ao último índice do array definido na variável, em nosso caso, variável $vetor. A segunda, faz a mesma coisa, mas com uma diferença, além do valor ser atribuído à variável $chave, o índice
<?php
$vetor = array(1,2,3,4,5);
#.SINTAXE PRIMEIRA........
foreach($vetor as $v){
echo "O valor atual do vetor é $v.<br>";
}
#.SINTAXE SEGUNDA........
$vetor2 = array("um"=>1,"dois"=>2,"três"=>3);
foreach($vetor as $chave => $valor){
echo "\$vetor2[$chave] => $valor.<br>";
}
?>
Break

O break é utilizado em laços como if, for, while e o próprio switch com já vimos anteriormente. Ele é responsável para realizar a parada do laço, fazendo com que o PHP continue o script normalmente.

Cotinue

O continue trabalha semelhante o break, com a simples diferença que o continue, ao invés de para o laço, e retorna no início do mesmo não executando o que estiver após o este comando.
[ leia mais ]