PHP: Normalizar string para usar na URL amigável/dinâmica

A tempos atras aqui mesmo no blog, postei um artigo ensinando a Como fazer URLs amigaveis com .htaccess e php. Entretanto, para ficar mais completo, você pode incrementar a função abaixo:

1
2
3
4
5
6
7
8
function NormalizaURL($str){
    $str = strtolower(utf8_decode($str)); $i=1;
    $str = strtr($str, utf8_decode('àáâãäåæçèéêëìíîïñòóôõöøùúûýýÿ'), 'aaaaaaaceeeeiiiinoooooouuuyyy');
    $str = preg_replace("/([^a-z0-9])/",'-',utf8_encode($str));
    while($i>0) $str = str_replace('--','-',$str,$i);
    if (substr($str, -1) == '-') $str = substr($str, 0, -1);
    return $str;
}

ela fará que uma string se torne uma URL amigável, ou seja, de fácil leitura humana e dos buscadores (SEO).

Por exemplo, você tem uma noticia com o titulo:
Rihanna toma caipirinha, come picolé, tatua braço e faz castelo na areia no RJ

Ao passar pelo codigo, ira retornar:
rihanna-toma-caipirinha-come-picole-tatua-braco-e-faz-castelo-na-areia-no-rj

Agora é so montar a url como desejar, por exemplo:
http://seudominio.com.br/2134/rihanna-toma-caipirinha-come-picole-tatua-braco-e-faz-castelo-na-areia-no-rj.html

Onde, seudominio é o seu domínio, 2134 seria o ID da matéria no banco de dados, e o restante apenas uma mascara para indexação nos buscadores. ;)

Have Fun!

Removendo IP do firewall com shell script

A minha necessidade era atraves de um painel de controle (escrito em PHP) executar um comando especifico (neste caso: csf -dr IP). O procedimento poderia ser simples, usando o exec() do PHP, mas por medidas de segurança o mesmo esta desabilitado no servidor.

Como diz meu grande ídolo Dadá Maravilha, vamos a solucionática: Fazer um Shell Script que le um arquivo TXT linha por linha, onde serão gravados os IPs e executar o comando com estes IPs.

Segue o código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/bin/bash
# DesBloquearIPTxt por Diogo Dourado <diogo@dourado.net>
# Le IPs para desbloquear

nome_arquivo="/home/betanetr/public_html/DesbloquearIps.txt"

if [ -f $nome_arquivo ]
then

    while read line
    do
        ipvalido=$(echo $line | egrep '^(([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]{1,2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$')
        if [ "$ipvalido" != "" ]; then
        csf -dr $line
        fi 
    done < $nome_arquivo
   
    echo '' > $nome_arquivo
fi

Vamos botar pra rodar?

  1. Entre no seu servidor via SSH
  2. Crie um arquivo com o código acima atraves do comando: edit DesBloquearIPTxt
  3. Faça dele um executavel com o comando: chmod +x DesBloquearIPTxt
  4. Abra o agendador de tarefas: crontab -e
  5. Adicione na ultima linha: * * * * * ./DesBloquearIPTxt >/dev/null 2>&1
  6.  Salve e seja feliz! :)

Avisos importantes:

  • Altere o nome do arquivo no código acima para o caminho exato de onde esta o arquivo, no meu caso, com os IPs gravados: DesbloquearIps.txt”
  • De permissão 0777 para este arquivo, mesmo vazio
  • Agora é so fazer um script em PHP para gravar os IPs que deseja desbloquear no TXT

Prontinho, agora o CRON cuida do resto. A cada minuto ele verifica se o arquivo existe, se existir, verifica linha por linha se é um IP válido, se for o IP válido ele faz o desbloqueio do IP.

Have Fun! ;)

Retorno Automático de Dados do PagSeguro em PHP/MySQL (com produtos) – Versão 2.0

Enfim, como prometido a nova versão do Retorno de dados do Pagseguro. As maiores novidades ficaram por conta da utilização a nova URL do PagSeguro para validação e a captura completa dos produtos.

Agora ficou mais fácil a instalação do mesmo, basta baixar o script abaixo, descompactar e editar  o PagSeguroRetornoConfig.php inserindo os dados solicitados. Depois basta configurar o banco de dados Mysql e utilizar o arquivo SQL disponível para criar as tabelas.

Download do script de Retorno de Dados Automatico do Pagseguro 2.0

 

Você deve configurar a sua conta no PagSeguro para ativar o Retorno Automático de dados, para isso, entre no seu PagSeguro, nas opcao Preferencias > Retorno Automatico de Dados. Basta ativar a URL de retorno e colocar o endereço completo da URL do arquivo. Neste mesmo local é onde você vai gerar o seu Token, solicitada no arquivo de configurações.

Feito isso, o seu Retorno já esta funcional.

Para testar seu script não é preciso fazer um pagamento, basta abrir o arquivo TestarCompra.php colocar o seu e-mail e enviar para o seu FTP. Feito isso, é so acessar o arquivo, gerar uma compra aleatoria e escolher BOLETO BANCARIO para pagamento. Depois de confirmar a compra por boleto e aguardar o tempo solicitado, as suas tabelas já terão os dados da compra, bem como os produtos gerados.

Ps: Se você não é programador, não faça perguntas, peça um orçamento atraves do contato.

É isso ae! La pergunta?

Justificativa de Ausência no Café com Tecnologia #cafetech

Pessoal, é com muito pesar e até constrangimento que trago esta notícia. Infelizmente não poderei participar do bate-papo sobre “Empreendedorismo Tecnológico: startups e novos mercados.”

É de conhecimento de alguns que passei por uma cirurgia de emergencia a alguns dias atras no abdomen parar remover duas hernias e de brinde um bom pedaço do intestino que foi prejudicado. Estou com um singelo corte de 30 cm na pança e com os pontos ainda em cicatrização, e apesar de estar bem aparentemente, andando sem fazer esforços em demasia, irei atender o pedido do cirurgião que me alertou sobre a possibilidade do deslocamento da malha cirurgica devido ao esforço da fala.

Gostaria de pedir minhas sinceras desculpas pelo ocorrido a todos os organizadores do evento, palestrastes e inscritos, mas foi um fato alem da minha vontade, que certamente era estar presente.

Irei publicar o material que preparei, e me comprometo de quando estiver totalmente recuperado a gravar e disponibilizar a todos ou até mesmo fazer uma apresentação on-line.

Certo, que mesmo com a minha ausência o evento será extraordinário, com a presença do Bernardo Porto e do Herberth Amaral, ambos da DeskMetrics.

Apesar de não conhecer os dois pessoalmente, é facil constatar os seus feitos pela web, e ja deixo aqui registrada a minha admiração profissional por ambos. Marcaremos algo depois.

Deixo tambem o meu muito obrigado ao Petronio Candido pelo segundo convite ao #CafeTech, alem das desculpas pela ausencia, e dizer a ele que certamente esse Karma será quebrado.

Link do evento: http://cafecomtecnologia.santoagostinho.edu.br/

Adicionando ou Removendo o WWW da URL com .htaccess

Para inicio de conversa é necessário saber o que é o htaccess e suas possibilidades, então recomendo a leitura em:
http://httpd.apache.org/docs/1.3/howto/htaccess.html

O que vamos fazer a seguir é adicionar o www. no inicio do dominio caso ele não seja digitado pelo usuário, por exemplo:

Usuario digita: mepergunte.com

O htaccess converte para: www.mepergunte.com

Para isso, basta editar (ou criar) o arquivo .htaccess na raiz do seu dominio com o seguinte código:

1
2
3
4
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.mepergunte.com/$1 [R=301,L]

Altere no código acima o domínio, para onde será feito o redirecionamento, inclusive colocando a ultima linha com um diretorio qualquer.

1
RewriteRule (.*) http://www.mepergunte.com/site/$1 [R=301,L]

Agora vamos fazer o processo inverso, que inclusive é o meu favorito.

Veja como remover o www. do seu domínio automaticamente utilizando .htaccess

1
2
3
4
RewriteEngine On
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule (.*) http://%1/$1 [R=301,L]

Basicamente so altera a linha 3 e 4, ja que as duas primeiraas so ativam e setam opções que serão utilizadas no código.

A linha 3 é a condição e a linha 4 o que será executada caso a condição seja válida.

Bom, acho que é isso. Aproveitando o post, algumas dicas bacanas para .htacess você pode encontrar no site Htaccess Tools, como detecção de navegação por iPhone, redirecionamentos, sistema de senhas, etc.