Palavras

Contar número de linhas de um arquivo de texto com PHP

Contar o número de linhas existentes em um arquivo de texto pode parecer uma tarefa trivial, mas nem sempre é. Dependendo da maneira que você optar por fazer isso, pode acabar comprometendo o desempenho do servidor. Geralmente utilizamos essas técnicas para contar o número de linhas em arquivos txt, mas você pode utilizar em qualquer arquivo que contenha texto.

Técnica para contar linhas de arquivos pequenos

Se você tiver que contar o número de linhas de um arquivo pequeno, você pode utilizar uma combinação das funções file(), que carregará todo o arquivo na memória em formato de array e count(), que contará o número de índices no array (equivalente ao número de linhas).

O código fica mais ou menos assim: Continue Lendo

Frameworks

O que é um Framework? Para que serve?

Na maioria das vezes, aqui no blog, eu me dedico a explicar algumas funções bastante específicas de uma ou outra tecnologia. Porém, há alguns dias, recebi um comentário em algum dos meus posts que indagava, entre outras coisas, “o que é um framework?“.

Dessa forma, decidi que seria interessante desenvolver uma postagem explicando o que são frameworks PHP e como eles funcionam. Espero que essa postagem possa ser útil e ajude a tirar dúvidas.

O que é um framework?

Framework é um conjunto de códigos abstratos e/ou genéricos, geralmente classes, desenvolvidos em alguma linguagem de programação, que relacionam-se entre si para disponibilizar funcionalidades específicas ao desenvolvedor de software. Em outras palavras, é como uma caixa de ferramentas, um kit que possui diversas funcionalidades devidamente implementadas, testadas e prontas para serem utilizadas no construção de softwares, poupando ao desenvolvedor tempo e trabalho na elaboração de operações básicas como acesso a banco de dados, sistema de templates, mapeamento de rotas e validação de dados.

Os frameworks costumam ser divididos em módulos que podem ser interdependentes ou não. Isso quer dizer que, dependendo do framework utilizado, você poderá utilizá-lo apenas em sua totalidade, com todos os seus aparatos, ou então pode haver a possibilidade de utilização de apenas as partes necessárias. Continue Lendo

Filtragem de dados

Filtrando e validando dados no PHP com filter_var()

O assunto de hoje é segurança. É bastante comum o seguinte cenário: o programador precisa validar um e-mail e vai para o Google e digita “expressão regular para validar e-mail” ou então “como validar e-mail com PHP”. O que acontece nesse caso? Somos soterrados por uma infinidade de informações e ficamos sem saber exatamente o que irá nos servir.

Contudo, desde a versão 5.2 do PHP está disponível a função filter_var(). Seu objetivo é filtrar e validar informações dentro do PHP. No artigo de hoje, vou realizar um estudo sobre as peculiaridades dessa função e mostrar como é fácil utilizá-la para aumentar a segurança de sua aplicação.

Validate e Sanitize

Os filtros dividem-se em dois tipos: validate e sanitize. Gosto de traduzi-los como validação e limpeza, respectivamente. O objetivo dos filtros de validação (validate) é verificar se determinado valor corresponde a um padrão previamente especificado. Já os filtros de limpeza (sanitize) irão retirar caracteres que não correspondam ao padrão permitido.

Cada filtro possui uma constante correspondente. No capítulo de filtros do manual do PHP é possível encontrar uma lista completa com todos os filtros disponíveis.

A função filter_var() obedece ao seguinte protótipo:

mixed filter_var ( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )

Sendo assim, o único parâmetro obrigatório é o primeiro, que indica o valor a ser filtrado. Porém, o filtro padrão é não aplicar filtro nenhum. Dessa forma, pra que ocorra de fato uma filtragem, é necessário especificar o segundo parâmetro. Continue Lendo

php7-logo

Lançado o PHP 7.0.1

Foi publicada ontem (17/12) a primeira release do PHP 7 desde o seu lançamento, há duas semanas.

Essa atualização é altamente recomendada para quem já estiver utilizando o PHP 7 em produção, pois contém diversos bugfixes.

A lista de mudanças no core, publicadas no site, são as seguintes: Continue Lendo

O que não fazer no PHP 7

10 coisas para não fazer no PHP 7

Com o lançamento do PHP 7, surge a oportunidade de podermos, de certa forma, melhorarmos algumas práticas que vínhamos executando.

Neste post estão reunidas algumas “manias” que é melhor deixarmos de lado para poder aproveitar tudo que de melhor o PHP tem a nos oferecer.

1. Não utilize funções mysql_*

Finalmente chegou o tempo em que não seremos mais apenas orientados a não utilizar as funções mysql_*. No PHP 7 essas funções foram retiradas, o que significa que você terá que mudar para as funções (muito melhores, por sinal) mysqli_*, ou então utilizar alternativas melhores ou mais flexíveis como PDO ou um ORM.

2. Evite desperdício de código

Em outras palavras: não escreva código inútil que desperdice o desempenho. Na verdade, a velocidade no PHP 7 aumentou tanto que pode esconder alguns problemas na arquitetura da aplicação. Não se satisfaça com o desempenho da sua aplicação só porque o PHP 7 a tornou mais rápida. Continue Lendo

Imagem de Geolocalização

Como modificar ou forjar geolocalização no navegador

Fala, galera! Tudo certinho?

Continuando meus estudos em cima da API do Google Maps (o último post foi sobre como encontrar coordenadas de locais próximos usando SQL), acabei encontrando uma dificuldade: como fazer o navegador pensar que estou em outro lugar?

Dando uma olhada nas Ferramentas de Desenvolvedor do Google Chrome descobri que é possível emular geolocalização utilizando coordenadas definidas pelo usuário. Pesquisei um pouco mais e descobri também como forjar a geolocalização no Firefox. Agora eu conto pra vocês como funciona!

Como os browsers detectam minha localização?

Com o advento do HTML5, tornou-se possível obter as coordenadas geográficas de quem está usando o navegador por meio de uma requisição JavaScript bastante simples: navigator.geolocation.getCurrentPosition().

Contudo, o usuário pode escolher se irá aceitar ou não compartilhar essas informações. Continue Lendo