https
). Desde que vi a velocidade impressionante que os service workers podem proporcionar a um site, fiquei obcecado em preparar meu site para SSL. Aplicando SSL com .htaccess
foi fácil. A parte difícil é atualizar os links de ativos no conteúdo do blog. O senhor começa achando que as expressões regulares serão a cura rápida, mas qualquer pessoa que tenha experiência com expressões regulares sabe que trabalhar com URLs é um pesadelo e que a regex é provavelmente a decisão errada.
A decisão certa é DOMDocument, um objeto PHP nativo que permite que o senhor trabalhe com HTML de forma lógica e agradável. O senhor começa carregando o HTML em uma instância do DOMDocument e, em seguida, usa suas funções previsíveis para fazer as coisas acontecerem.
// Formats post content for SSL function format_post_content($content="") { $document = new DOMDocument(); // Ensure UTF-8 is respected by using 'mb_convert_encoding' $document->loadHTML(mb_convert_encoding($content, 'HTML-ENTITIES', 'UTF-8')); $tags = $document->getElementsByTagName('img'); foreach ($tags as $tag) { $tag->setAttribute('src', str_replace('http://davidwalsh.name', 'https://davidwalsh.name', $tag->getAttribute('src') ) ); } return $document->saveHTML(); }
Em meu exemplo acima, encontro todos os img
e substituo seus protocolos por https://
. Vou acabar fazendo o mesmo com o iframe src
, a href
e algumas outras tags raramente usadas. Quando minhas modificações são concluídas, chamo o saveHTML
para obter a nova string.
Não caia na armadilha de tentar usar expressões regulares com HTML – o senhor terá um futuro de fracasso. O DOMDocument é leve e tornará seu código infinitamente mais fácil de manter.
Expressões regulares para o resto de nós
Mais cedo ou mais tarde, o senhor se deparará com uma expressão regular. Com sua sintaxe enigmática, documentação confusa e enorme curva de aprendizado, a maioria dos desenvolvedores se contenta em copiá-las e colá-las do StackOverflow e torcer para que funcionem. Mas e se o senhor pudesse decodificar as expressões regulares e aproveitar seu poder? Em…
Spyjax: Ajax para o mal usando Dojo
A ideia do Spyjax não é nova. Em posts anteriores, falei sobre como é possível espionar o histórico do usuário com MooTools e jQuery. Hoje falaremos sobre como verificar o histórico do usuário usando o Dojo Toolkit. O HTML Para fins deste…
Visualizações dinâmicas de formas de onda com wavesurfer.js
As imagens de forma de onda são uma adição incrível aos widgets de áudio enfadonhos. Elas podem ser funcionais e também esteticamente agradáveis, permitindo que os usuários naveguem visualmente pelo áudio. Recentemente, encontrei o wavesurfer.js, um incrível utilitário de imagem de forma de onda que usa para API de áudio da Web para criar um sistema super personalizável…