Postagens

PHP: Usando o str_pad() para completar strings que necessitam de um tamanho mínimo.

A função  str_pad() do PHP é uma daquelas que ficam escondidas ali e muito pouca gente sabe para que serve. Estas funções "escondidas" podem mostrar-se muito úteis na hora de resolver problemas aparentemente complexos ou chatos. O str_pad() completa strings de forma que elas fiquem sempre com um tamanho mínimo. Vamos ver alguns exemplos abaixo: <?php $input = "Exemplo"; echo str_pad($input, 10); echo "<br>"; echo str_pad($input, 10, "-=", STR_PAD_LEFT); echo "<br>"; echo str_pad($input, 10, "-=", STR_PAD_RIGHT); echo "<br>"; echo str_pad($input, 10, "_", STR_PAD_BOTH); echo "<br>"; echo str_pad($input, 2 , "___"); O código acima retorna as seguintes saídas: Exemplo -=-Exemplo Exemplo-=- _Exemplo__ Exemplo $input é sua string original. O parâmetro seguinte é o n...

AngularJS - Aplicando filters através do Controller

Trabalhar com data pode ser bem chato, porém com o Angular JS é muito tranquilo. Vamos criar um script que pega a data atual e a formata no padrão brasileiro, ou seja, Dia/Mês/Ano hora:minuto:segundo. Segue abaixo o exemplo: <html ng-app="app"> <head> <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.3/angular.min.js"></script> <script> var appModule = angular.module('app', []); function General($scope, $element, $http, $filter) { $scope.datahora = $filter('date')(new Date(), 'yyyy-MM-dd HH:mm:ss'); } </script> </head> <body ng-controller="General"> <p>Data</p> <span>{{datahora}}</span> </body> </html> 'General' é nosso controller. O detalhe aqui é incluir o parâmetro ' $filter ' na declaração da função do controller. Com isso poderemos trabalhar com os filtr...

PHP - Utilizando proxy e CURL para acessar servidores ou sites

Imagem
Proxies são extremamente úteis, principalmente para usuários avançados, e se você não sabe exatamente o que são recomendo a leitura deste artigo da Wikipedia . Resumidamente um proxy é uma máquina que fica entre você e a Internet. Acessar a Web por um proxy fará com que os servidores que você acessa enxerguem não o seu endereço mas o endereço desta máquina intermediária. Você pode precisar utilizar um proxy caso a rede da sua empresa não permita acessar um Facebook, Twitter ou outro site qualquer, caso seu IP tenha sido bloqueado por algum administrador de site, queira testar o acesso de diferentes usuários em seu site e outros usos menos ortodoxos. Por suas características peculiares proxies devem ser usados com cuidado, principalmente se você pensa em acessar serviços utilizando alguma senha. Hoje vamos criar uma classe que utilizará um proxy para acessar qualquer URL com a ajuda do CURL do PHP. Vamos considerar que o proxy que você utiliza é aberto, ou seja, não necess...

Linux - Utilizando o comando DIFF para comparar diferenças entre arquivos em diferentes pastas

Um comando do Shell Linux muito interessante e útil é o 'diff'. Utilizo ele tanto para verificar as diferenças entre arquivos gerados por um sistema em que fiz alguma atualização quanto para verificar diferenças no código entre versões de arquivos de aplicações. Sua utilização é muito simples: $ diff /diretorio1 /diretorio2 | cat > /diretoriodesaida/diferencas.txt Explicando o comando acima: 'diff' verifica a diferença entre os arquivos nas pastas 'diretorio1' e 'diretorio2', inclusive diferenças dentro dos arquivos. '| cat > /diretoriodesaida/diferencas.txt' direciona a saída padrão da tela para um arquivo, ou seja, os resultados da análise poderão ser checados no arquivo 'diferencas.txt' Dentro do arquivo gerado 'diferencas.txt' estão indicados todos os trechos que foram modificados entre dois arquivos de mesmo nome ou as diferenças entre quantidades de arquivos.

MySQL - Filtrando CEP com a ajuda do REGEXP

Vamos a uma dica rápida de REGEXP, utilizando como base a seleção de linhas em uma tabela que possuem CEP preenchido. Nossa tabela possui a seguinte estrutura: ID Endereço CEP 1 Rua peruibe 459 05698426 2 Rua martim 67 - 3 Av Rebouças 1000 08968547 Para selecionar apenas as linhas que possuem CEP utilizamos a seguinte Query: SELECT ID,ENDERECO,CEP FROM tabela WHERE CEP REGEXP '^0[0-9]{7}$'  O que nossa REGEXP faz? ^0  : faz com que o MySQL olhe a partir do primeiro caractere e pegue apenas os valores com zero; [0-9]{7}  : após o primeiro caractere, que deve ser zero, pega os campos cujos próximos 7 valores sejam numéricos $  : finaliza o REGEXP, ignorando tudo mais que venha depois dos oito caracteres numéricos indicados anteriormente. O resultado da Query seria: ID Endereço CEP 1 Rua peruibe 459 05698426 3 Av Rebouças 1000 08968547 Abraço!

SQL JOINS - Um infográfico muito bacana que ajuda a entender melhor os JOINS

Imagem
JOINS de SQL geralmente são chatinhos de visualizar mas, apesar disso, são extremamente úteis, principalmente em bancos de dados cuja estrutura está normalizada. Para melhorar este cenário e facilitar a compreensão segue abaixo um infográfico que explica de maneira visual o que cada tipo de JOIN faz. Obs: infelizmente no MySQL não existe FULL OUTER JOINs. Para fazer isso são necessários alguns truques utilizando UNION de duas ou mais seleções utilizando LEFT e RIGHT JOINs.

Javascript - Comportamentos diferentes para incremento de valores com ++ antes e depois da variável

Hoje vamos tratar de algo que aparentemente é muito bobo mas que na verdade não o é e costuma trazer grandes problemas quando utilizado de maneira errada: o incremento em variáveis. O incremento está presente em inúmeras linguagens de programação. Os exemplos que apresentarei aqui são baseados em Javascript , porém eles são válidos também para PHP e outros. Acredito que todos sabem que para incrementar ou decrementar (adicionar ou subtrair) uma unidade a uma variável, ao invés de fazer isso: $a = $a + 1 Podemos fazer isso: $a++ ou isso: ++$a Bem, acredito que todos sabem deste truque, mesmo porque é a primeira coisa que aprendemos quando iniciamos na arte de programar, porém você sabe qual a diferença entre ambos? Vamos rodar um javascript bem simples para exemplificar o que acontece: $a = 0; $b = 0; $a++; ++$b; console.log($a); console.log($b); É provável que você obtenha como resultado: 1 1 Bem, até ai parece que não existem diferenças, correto? Inic...