Utilizando os botões voltar, avançar e atualizar com AJAX

Resumo:
Botões voltar, avançar e atualizar do navegador
Introdução

Fim da guerra entre AJAX e Botões do Navegador!

Um dos maiores inconvenientes dos sistemas que utilizavam AJAX é que era relativamente complexo utilizar este modelo e manter funcionando os botões voltar, avançar e atualizar do navegador. Porém, o novo Firefox 4 trouxe outro recurso previsto no HTML 5 que resolve este problema com bastante facilidade. Este artigo mostra como voltar o suporte a estes botões do navegador através do método history.pushState.

CSS Transitions

Resumo:
Introdução

CSS Transitions é um módulo da linguagem CSS 3 que permite especificar como serão as transições entre propriedades CSS quando ocorre algum evento. Por exemplo, no CSS 2.1, quando utilizamos a pseudo-classe ":hover" em um link e especificamos uma cor de fonte diferente, a transição da cor antiga para a nova é instantânea ao passar o mouse sobre o link. Com CSS Transitions, é possível especificar como se dará a transição de uma cor para a outra, ou seja, dentro de um tempo especificado, a cor do link irá variar várias vezes, percorrendo o degradê que varia entre a cor inicial e a cor final, causando um efeito [eu diria] mais "agradável" de se ver. E o melhor: é uma animação nativa do navegador, sem precisar de JavaScript ou Flash.

Uma das melhorias da nova engine do Firefox 4 (Gecko 2) é justamente o suporte (ainda incompleto) às transições CSS. Portanto, nada melhor que aprender um novo recurso e já curtir os efeitos onde eles são suportados.

Manipulando arquivos ZIP pelo PHP

Resumo:
zip
Introdução

Existem situações em sistemas de informação Web onde é necessário o envio de um arquivo muito grande ou então vários arquivos de uma vez para o cliente. Talvez uma imagem, talvez um pacote de relatórios, ou simplesmente conjuntos de arquivos. Este artigo mostra como utilizar a extensão Zip do PHP para criar um pacote ZIP (ou ler um pacote existente) e realizar operações sobre ele, tais como incluir arquivos/diretórios para serem compactados, extrair o conteúdo, enviar o pacote para o cliente, etc.

Gravando arquivos em BD usando PDO do PHP

Resumo:
escrevendo no HD
Introdução

Existem duas formas mais convencionais de se armazenar arquivos em sistemas de informação: gravando em um diretório reservado ou gravando no banco de dados. Gravando em um diretório, existem alguns riscos como o arquivo poder ser acessado por usuários do servidor, ou o arquivo ser acessado por qualquer pessoa da Web se ficar em um diretório visível na Web. Guardando o arquivo em BD, existe o inconveniente do BD poder ficar com um tamanho muito grande, embora ofereça uma segurança adicional. Neste artigo veremos como gravar e recuperar arquivos do BD usando PDO. Para mais detalhes sobre PDO, leia antes o artigo PDO.

Criando Gráficos com o Google Chart e PHP

Resumo:
Introdução

Atenção: o "Image Chart" mostrado neste artigo foi depreciado pelo Google em 2012. Um artigo mais recente sobre o assunto apresenta o novo recurso para Gerar Gráficos em PHP com o Google Charts.

Google Chart é um serviço do Google que provê a criação de gráficos dinamicamente. O funcionamento é simples: o programador faz uma requisição ao site do Google Chart com os parâmetros desejados (através da própria URL); e o Google devolve uma imagem com os dados plotados na forma de gráfico. Normalmente o programador cria uma tag <img> com o atributo src apontando para uma URL gerada dinamicamente e o resultado já é visto no HTML. Outra alternativa é o programador realizar a requisição, recuperar a imagem em formato binário, salvá-la em algum lugar, depois exibí-la quando quiser.

SimpleXML para manipular XML pelo PHP

Resumo:
Introdução

SimpleXML é uma extensão do PHP que permite ler e manipular XML de maneira bastante simples, embora com várias restrições. A principal restrição é que um elemento (tag) só pode conter texto ou outros elementos, nunca texto junto com outros elementos, como ocorre no HTML.

Obter Caminhos de Arquivos e Diretórios com PHP

Resumo:

Frequentemente surge uma ferramenta em uma aplicação que precisa recuperar um determinado dado de um caminho completo a um arquivo ou diretório. As vezes precisamos apenas do diretório, ou apenas o nome do arquivo, ou apenas a extensão do arquivo, etc. Frequentemente os programadores utilizam funções como explode, strpos e substr para obter o que querem. De fato, até conseguem, mas nem todos sabem que já existem funções no PHP próprias para isso.

Formulários no HTML 5

Resumo:
HTML 5

O HTML 5 ainda está em fase de desenvolvimento, porém, já estão previstas várias melhorias. Algumas destas novidades estão relacionadas à criação de formulários. Vamos listar algumas delas, lembrando que estas informações estão sujeitas a mudanças.

Otimização de consultas SQL usando LIMIT

Resumo:
performance

É muito comum realizar consultas no Banco de Dados que esperam receber no máximo uma linha de resultado. Por exemplo, durante a autenticação de um usuário (log-in), para recuperar o registro do BD e comparar a senha com aquela informada no formulário.

Nestes casos, pode ser útil incluir a cláusula "LIMIT", implementada por diferentes SGBDs (por exemplo, MySQL e PostgreSQL).

JSON (JavaScript Object Notation)

Resumo:
Introdução

JSON (JavaScript Object Notation) é um mecanismo de codificação/decodificação de valores para intercâmbio de dados. Ele é nativo da linguagem JavaScript, mas outras linguagens dão suporte ao mecanismo em função de sua simplicidade. PHP possui uma extensão que consegue codificar/decodificar valores de JSON para os tipos correspondentes do PHP e vice-versa. O funcionamento é semelhante ao visto nas funções serialize e unserialize, a diferença é que a linguagem JavaScript compreende um pacote codificado com JSON nativamente, mas não compreende um pacote codificado com serialize nativamente.

Gerando Códigos e Símbolos Unicode pelo PHP

Resumo:

Já falamos sobre Unicode, e sabemos que os símbolos UTF-8 podem precisar de 1 a 4 bytes devido ao número de símbolos definidos pela tabela Unicode e pelo funcionamento do algoritimo de codificação/decodificação UTF-8.

Para ajudar em algumas operações com strings com texto em UTF-8, pode ser necessário utilizar um recurso extra. A seguir, são disponíveis algumas funções para trabalhar com UTF-8:

Judy Arrays do PHP

Resumo:
Introdução

Judy Array é uma extensão Pecl (código em C que possui interface para utilização em PHP) que implementa arrays associativos com os benefícios de escalabilidade, alta performance e eficiência no uso de memória.

HTML Entities

Resumo:
Introdução

HTML é uma linguagem baseada em tags. Estas tags são definidas através de caracteres reservados (símbolos "<" e ">"). Além disso, as tags podem conter atributos definidos na forma: nome_do_atributo="valor" ou nome_do_atributo='valor'.

Com o uso de caracteres reservados, existe a necessidade de um mecanismo para representar estes mesmos caracteres fora do contexto nos quais são reservados. Ou seja, se desejamos mostrar um sinal de menor num documento HTML, precisamos representá-lo de outra forma, caso contrário, o interpretador de HTML pode achar que é um caractere reservado indicando o início de uma nova tag. O mecanismo que permite representar caracteres no HTML é chamado de HTML entities (ou "Entidades HTML").

Criar arquivos com nomes únicos em diretórios

Resumo:

Em sistemas que envolvem upload de um número indefinido de arquivos, é possível que o sistema armazene o arquivo no próprio Banco de Dados ou que ele armazene em algum diretório reservado para arquivos submetidos.

O primeiro caso normalmente não exige que os arquivos tenham nomes únicos (exceto por alguma restrição do sistema). No segundo caso, independente da forma como os diretórios são organizados, é necessário garantir que um arquivo tenha um nome único dentro de um diretório.

Evitando o "autocomplete" de navegadores

Resumo:
Introdução

Sistemas Dinâmicos Web normalmente são repletos de formulários. Em alguns deles, é útil que o navegador ofereça sugestões de preenchimento automático baseado no histórico de preenchimento de determinado campo. Normalmente os navegadores gravam estes tipos de informação de acordo com o valor do atributo "name" do input de texto (e, talvez, de acordo com a URL em que o campo foi gerado).

Porém, em alguns campos, não desejamos este recurso por uma questão de segurança e/ou confidencialidade.

Funções com número indefinido de parâmetros em PHP

Resumo:

Algumas funções em PHP possuem um número indefinido de parâmetros. Por exemplo: printf, onde o primeiro parâmetro é o "formato" e os demais são definidos de acordo com o valor do formato.

Para fazer uma função com número indefinido de parâmetros, basta usar algumas funções especiais do PHP:

  • func_num_args - Retorna o número de parâmetros informados para a função.
  • func_get_arg - Retorna um parâmetro determinado (pela posição).
  • func_get_args - Retorna os valores passados por parâmetro na forma de um array indexado numericamente.