Expressões Regulares em PHP - Recursos avançados

Resumo:
Introdução

No artigo sobre Expressões Regulares em PHP, vimos os conceitos básicos da sintaxe de Expressões Regulares usadas no PHP, que é o padrão PCRE, além das funções do PHP para realizar diferentes operações com expressões regulares. Após 6 anos, resolvi complementar aquele artigo com os recursos mais avançados sobre regex e algumas curiosidades extras sobre o assunto. Caso você não conheça o básico sobre Expressões Regulares, é altamente recomendável que primeiro vocẽ leia o artigo anterior para depois continuar.

Expressões Regulares em PHP

Resumo:
Introdução

Expressões regulares são expressões que permitem especificar um padrão de string, ou seja, como os caracteres de uma string ficam dispostos em sequência. Com este padrão, é possível realizar checagens para saber se uma string segue determinado padrão, capturar pedaços da string com base no padrão, ou ainda substituir pedaços de uma string por outra sequência de caracteres.

As expressões regulares são um recurso extremamente útil não apenas para PHP, mas para várias outras linguagens, inclusive JavaScript. Porém, como possui uma sintaxe própria, nem todos programadores PHP tem familiaridade em montar ou entender expressões regulares. Neste artigo veremos um compilado de informações úteis para se aprender a usar expressões regulares em PHP.

API para hash de senhas no PHP 5.5

Resumo:
Introdução
cadeado

No artigo Autenticação e criptografia de senhas, vimos os mecanismos que a linguagem PHP oferece para gerar hash, especialmente para armazenamento seguro de senhas, além do processo de conferência de um hash com a senha real. Porém, até então não existia uma padronização sobre este processo. Com isso em vista, a equipe de desenvolvimento do PHP implementou uma API para geração de hash de senhas.

Este artigo irá apresentar esta, que é uma das novidades do PHP 5.5.

Trabalhando de acordo com a Localidade em PHP

Resumo:
Introdução

Muitas aplicações web possuem uma área de abrangência bastante restrita, normalmente aos usuários de uma entidade ou pessoas de um país. Porém, também existem aplicações mais globais, usadas por pessoas de diferentes países e que possuem notações próprias para trabalhar com palavras e números.

A questão da internacionalização de uma aplicação envolve várias tarefas, como a tradução dos termos utilizados, possíveis reformulações de layout, e a aplicação de regras relacionadas à localidade. Neste artigo vamos tratar especificamente desta última, que são as regras relacionadas à localidade.

Output Buffer do PHP e os mistérios do echo (parte 2)

Resumo:
Introdução

No artigo anterior, vimos uma introdução sobre o Output Buffer do PHP, com seus conceitos básicos e uma aplicação prática do recurso. Neste artigo, veremos a continuação do assunto, nos aprofundando em conceitos mais complexos e algumas aplicações práticas mais avançadas.

Output Buffer do PHP e os mistérios do echo (parte 1)

Resumo:
Introdução

Um dos comandos mais conhecidos do PHP é o echo, que "simplesmente" envia uma string para a saída padrão (STDOUT). Porém, o funcionamento aparentemente simples de um echo pode envolver conceitos bem mais complexos, como o output buffer e a transferência de pacotes HTTP de resposta do servidor para o cliente.

Neste post veremos alguns conceitos necessários para compreender a fundo o funcionamento do Output Buffer. Também veremos um exemplo inicial de como usufruir deste recurso para modificar dados que já foram "impressos" no PHP. No próximo post, veremos alguns exemplos mais complexos e suas aplicações práticas.

Convertendo ISO-8859-1 para UTF-8 de forma segura em PHP

Resumo:
Introdução

Já falamos várias vezes sobre Unicode, desde a definição de unicode, funções para manupular unicode, como utilizar unicode em todas camadas do sistema e como representar os símbolos na forma de html entities.

Sabemos que ISO-8859-1 foi uma codificação muito utilizada antes do surgimento do Unicode, mas que a tendência é que tudo seja migrado para Unicode e, no caso do ISO-8859-1, preferencialmente migrado para UTF-8. Porém, aplicações web estão sujeitas a situações das mais adversas, quando se trata de dados enviados pelo usuário. Existem casos em que um usuário consegue colar um texto em que parte dele deveria ser ISO-8859-1 e parte dele deveria ser UTF-8. Isso pode ocorrer ao copiar e colar trechos de aplicações para aplicações em sistemas de "origem duvidosa", que acabam gerando uma bagunça de bytes que, por acaso, acabam sendo enviadas para nossa aplicação.

Para resolver este problema, elaborei uma função parecida com utf8_encode, ou seja, converte os caracteres de ISO-8859-1 para UTF-8, porém, caso a função identifique um caractere UTF-8 no texto, ela o mantem intacto. Portanto, ela é útil para garantir que o texto final seja 100% UTF-8 válido.

Cuidados com a geração de XML

Resumo:
Introdução

Ao gerar documentos XML com conteúdo dinâmico é preciso tomar cuidado com a sintaxe XML para que o documento não seja "mal formado". Muita gente conhece a sintaxe básica do XML, que especifica coisas como: é preciso um elemento raiz único, todo elemento que é aberto precisa ser fechado (ou ter o fechamento simplificado com "/>"), todos atributos precisam ter nome e valor, mesmo que o valor seja vazio.

Porém, um detalhe que nem todos sabem é que os elementos que contém texto não podem incluir qualquer tipo de caractere. Neste artigo veremos detalhes sobre isso.

Usando PHP para tratar E-mail com Acentos e Caracteres Especiais

Resumo:
Introdução

Ao utilizar a função mail do PHP, você pode se deparar com um inconveniente por causa de codificação de caracteres usada para o assunto ou o conteúdo do e-mail. O problema é que o protocolo SMTP só permite a transmissão de dados em US-ASCII. Para utilizar caracteres que não fazem parte da tabela US-ASCII, é preciso utilizar um mecanismo de codificação dos dados para que o resultado seja compatível com US-ASCII. Neste artigo, veremos como fazer isso e enviar e-mail com assunto e conteúdo corretamente.

Problemas com Charset? Nunca mais

Resumo:
Hommer assustado com um caractere exibido incorretamente
Introdução

Vira e mexe existe alguém aparecendo com problemas com apresentação de caracteres por conta de codificação de caracteres errada. Já escrevi sobre Unicode, Códigos e Símbolos Unicode e sobre HTML entities. Mas neste artigo, veremos como utilizar UTF-8 em tudo e nunca mais ver caracteres sendo exibidos errado.

Google Web Fonts

Dica rápida: o Google Web Fonts permite utilizar algumas fontes estilizadas com facilidade no seu site. Basta seguir estes passos:

  1. procurar uma fonte no site Google Web Fonts,
  2. clicar sobre uma fonte,
  3. clicar sobre "Use this font",
  4. copiar a tag <link> para dentro do <head> da sua página e
  5. aplicar a diretiva font-family sobre os elementos desejados via CSS.

Obtendo dados de tabelas, colunas e relacionamentos no PostgreSQL

Resumo:
Elefante
Introdução

No post anterior, vimos como consultar informações sobre tabelas, colunas e relacionamentos em bancos de dados MySQL. Neste post serão apresentados os recursos correspondentes no banco de dados PostgreSQL.

Diferente do MySQL, o PostgreSQL não possui um banco de dados reservado chamado information_schema. Ao invés disso, possui algumas tabelas reservadas prefixadas por "pg_".

Obtendo dados de tabelas, colunas e relacionamentos no MySQL

Resumo:
Golfinho
Introdução

Ao desenvolver um framework ou um sistema que possui uma "porta dos fundos" para o BD, onde é possível acessar a base de dados diretamente através de uma interface genérica, podemos precisar obter informações sobre as tabelas, colunas, relacionamentos, etc. No MySQL, estas informações ficam em um banco reservado chamado information_schema, que possui diversas VIEWS para consulta de dados.

Este artigo apresenta algumas SQLs úteis para se obter informações a respeito de tabelas, colunas, índices, chaves e relacionamentos entre tabelas, no SGBD MySQL.

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:

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").

Entendendo o Unicode e UTF-8

Resumo:

Se você trabalha com programação Web, provavelmente já utilizou a codificação de caracteres Latinos (ISO-8859-1) e conhece ou já deve ter ouvido falar de Unicode. Este artigo mostra o que é Unicode, quais os benefícios e como trabalhar com ela.