Descobrindo a consulta que o usuário fez no Google pra chegar no seu site

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Prefácio

O título é bem grande mas o tutorial é simples! Tudo que nós precisamos é saber o que é o REFERER e qual o seu poder!

Conceito

Sempre que você troca de página, a URL anterior fica armazenada numa variável de ambiente chamada “REFERER”, que não possui uma tradução exata para o português mas é algo do tipo “Referência”.
A partir desta “referência” podemos descobrir qual foi a última URL que o nosso usuário esteve (limitando-se a aba atual). Sempre iremos encontrar o referer (se houver) dentro da superglobal $_SERVER.
Continue Lendo

Contribua com o PHPit e ajude no desenvolvimento de um portal!

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Bom dia, caros amigos!

Venho até vós solicitar vosso auxílio!

Todos sabem que ultimamente eu ando sem tempo, mas isso logo irá mudar…
Estou planejando muitas alterações, conforme já anunciei, e logo logo elas estarão no ar.

Neste meio tempo eu gostaria de fazer um apelo.
Todos vocês que quiserem contribuir com o PHPit, podem entrar em contato comigo através dos comentários, do formulário de contato ou até diretamente pelo meu e-mail (rafael arroba phpit ponto com ponto br).

Você pode contribuir com artigos que você mesmo escreveu, com idéias e sugestões para implementações, propostas de anunciantes e até mesmo com dinheiro, por que não? (Já que o phpit até agora só me deu despesas :P)

Então desde já conto com todos vocês… E participem também da promoção que há na página inicial para você concorrer há um Eee PC, livros, pen drives e mais um monte de prêmios! ;)

Um grande abraço e fiquem com Deus! :D

O que tem mantido o Rafael tão ocupado?

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Salve, amigos do PHPit!

Vocês devem estar se peguntando por que eu simplesmente sumi nos últimos dias!
A resposta é simples…

SURPRESAS!

Sim! Estou preparando surpresas! Entre elas, temos o novo layout do PHPit, totalmente reformulado, feito para apresentar melhor o conteúdo, tornar a navegação mais intuitiva e adicionar centenas de funcionalidades à sua navegada!

Teremos também artigos separados por conteúdo, revisões de livros e softwares, seção de downloads que funciona, um formulário decente e muitas outras novidades que vocês nem imaginam!

Portanto, desde já, peço a paciência de todos vocês para que aguardem por novos artigos e por “novas novidades” que, prometo, serão demais! :D
(Pareço os carinhas do Bom Dia e Cia falando do novo cenário).

Mas permaneço recebendo sugestões por e-mail e pelo formulário de contato, que agora funciona!

Um grande abraço para todos vocês e fiquem com Deus!

Detectando/descobrindo o charset/codificação de uma string – UTF-8, ISO-8859-1, etc.

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Prefácio

Título longo (tem a ver com o Google? Magina!) mas tutorial bem simples. Recentemente enfrentei problemas com o UTF-8 (quem nunca enfrentou?) e testei vários modos de descobrir qual era a codificação usada, desde as gambiarras mais descaradas até as expressões regulares mais rebuscadas. Depois de muito bater a cabeça contra a mesa, cheguei a um resultado aceitável de como descobrir se a codificação da string era UTF-8 ou ISO-8859-1 utilizando strpos() e procurando pelo caractere à (uma vez que no português não existem palavras que comecei com “ã”), mas no fim das contas acabei percebendo que sempre tem alguém que envia uma mensagem totalmente em maiúsculo. Não vou simplesmente tacar um strtolower(). O jeito é pesquisar mais…
Continue Lendo

Filtros de imagem com GD – Sépia, brilho, contraste, blur, etc

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Prefácio

Sempre gostei de trabalhar com a biblioteca GD. Recentemente, durante algumas pesquisas, descobri que há um jeito de aplicar efeitos nas imagens, e é isso que veremos hoje.

Conceito

A função que utilizaremos é a imagefilter(). Com ela podemos aplicar diversos filtros nas imagens como sépia, inversão de cores, preto e branco, alteração de brilho e contraste, coloração, embaçar (emboss), blur e muitos outros. A seguir veremos alguns exemplos do que pode ser feito com esta função.

Mão na massa

Como eu gosto muito da Alemanha, resolvi pegar essa imagem de um castelo de lá para usar como exemplo.

Todos os códigos vistos abaixo assumem que a imagem já estará aberta, dentro da variável $img, conforme o código abaixo:

[php]<?php
$img = imagecreatefromjpeg(‘imagem.jpg’);
?>[/php]

Negativo

Para aplicar o filtro negativo, você deve utilizar a constante pré-definida chamada IMG_FILTER_NEGATE.

[php]<?php
imagefilter($img, IMG_FILTER_NEGATE);
?>[/php]

Resultado:

Preto e branco – Desaturar (Desaturate)

A constante se chama IMG_FILTER_GRAYSCALE. Com ela você pode desaturar completamente a imagem.

[php]<?php
imagefilter($img, IMG_FILTER_GRAYSCALE);
?>[/php]

Brilho (Brightness)

É possível alterar o brilho da imagem utilizando a constante IMG_FILTER_BRIGHTNESS, mas para tanto será necessário passar mais um parâmetro, que irá indicar o nível na alteração do brilho.

Seguem dois exemplos, o primeiro aumentando o brilho e o segundo diminuindo.

[php]<?php
imagefilter($img, IMG_FILTER_BRIGHTNESS, 80);
// …
imagefilter($img, IMG_FILTER_BRIGHTNESS, -80);
?>[/php]

Contraste

Utilizando a constante IMG_FILTER_CONTRAST você pode alterar o contraste. É possível atingir resultados bastante interessantes utilizando um valor negativo.

[php]<?php
imagefilter($img, IMG_FILTER_CONTRAST, -50);
?>[/php]

Colorir (Colorize)

Para aplicar uma camada de cor sobre a imagem, você pode utilizar a constante IMG_FILTER_COLORIZE.

[php]<?php
imagefilter($img, IMG_FILTER_COLORIZE, 255,175,0);
?>[/php]

Detecção de bordas (Edge detect)

Efeito bem maluco, que encontra as bordas da imagem e as desenha. A constante utilizada é a IMG_FILTER_EDGEDETECT.

[php]<?php
imagefilter($img, IMG_FILTER_EDGEDETECT);
?>[/php]

Entalhe (Emboss)

Não confunda o “emboss” com o “embaçar, desfocar (blur)”. Com a constante você consegue gerar um efeito bacana.

[php]<?php
imagefilter($img, IMG_FILTER_EMBOSS);
?>[/php]

Gaussian Blur

Este comando dispensa comentários. A constante é IMG_FILTER_GAUSSIAN_BLUR.

[php]<?php
imagefilter($img, IMG_FILTER_GAUSSIAN_BLUR);
?>[/php]

Blur

Aplicar um Blur normal. Para tanto, utilize a constanteIMG_FILTER_SELECTIVE_BLUR.

[php]<?php
imagefilter($img, IMG_FILTER_SELECTIVE_BLUR);
?>[/php]

Sketch

Com a constante IMG_FILTER_MEAN_REMOVAL é possível atingir um efeito conhecido como “Sketch”, que é algo parecido com um rascunho ou algo passado apenas a lápis.
Surgem resultados bacanas quando você remove a saturação da imagem antes de aplicar este efeito.

[php]<?php
imagefilter($img, IMG_FILTER_MEAN_REMOVAL);
?>[/php]

Smooth

Aplique um filtro de suavização na imagem utilizando IMG_FILTER_SMOOTH.

[php]<?php
imagefilter($img, IMG_FILTER_SMOOTH, 90);
?>[/php]

Conclusão

A biblioteca GD é bastante completa. Muitos efeitos estão disponíveis e vai da imaginação de cada um aplicá-los como bem entender. É possível fazer muita coisa legal, mas sempre tomando cuidado para não estourar a memória do servidor.

Peço perdão a todos vocês pela demora em postar mais um tutorial, mas é que a minha vida está bastante corrida. Em breve terem muito mais tempo pra escrever… E trarei muitas novidades!
Mandem dúvidas e sugestões!

Um abraço e fiquem com Deus!

Limitando a velocidade de download de um arquivo

Atenção! Essa postagem foi escrita há mais de 2 anos. Na informática tudo evolui muito rápido e algumas informações podem estar desatualizadas. Embora o conteúdo possa continuar relevante, lembre-se de levar em conta a data de publicação enquanto estiver lendo. Caso tenha sugestões para atualizá-la, não deixe de comentar!

Prefácio

Seguindo a linha do último artigo, agora criaremos um sistema para limitar a velocidade do cabra quando ele estiver fazendo o download.

Isso é bom para sites com grande volume de tráfego onde você não quer afogar a banda do servidor.

E então você me pergunta: “Como limitar a velocidade de um download com PHP?”

Conceito

Para esta experiência, utilizaremos um cálculo simples.
A idéia é não enviar o arquivo diretamente para o usuário, e sim enviar para o buffer em uma velocidade constante, estipulando a velocidade máxima com que o usuário irá receber os dados.

A idéia pode parecer um pouco complexa mas a implementação é simples!
Continue Lendo