Skip to content

Instantly share code, notes, and snippets.

View paulofreitas's full-sized avatar

Paulo Freitas paulofreitas

View GitHub Profile
<?php
$env = $app->detectEnvironment(function () {
$env_files = glob(__DIR__ . '/../.env.*.php');
if (count($env_files)) {
list($env) = sscanf(basename(current($env_files)), '.env.%[^.].php');
return $env;
}
@paulofreitas
paulofreitas / Validate_BR.class.php
Last active December 12, 2015 03:08
PHP data validation class for Brazil
<?php
/**
* Data validation class for Brazil
*
* @category Validate
* @package Validate_BR
* @author Paulo Freitas <me@paulofreitas.me>
* @version 20130204
* @copyright 2005-2013 Paulo Freitas
@paulofreitas
paulofreitas / buscaCEP.js
Last active December 16, 2015 10:49
Busca de CEP através do site dos Correios (jQuery)
/*
* Busca de CEP através do site dos Correios (jQuery)
*/
function buscaCEP(cep, callback, callbackErro) {
$.get('http://www.correios.com.br/encomendas/malote/endereco.cfm',
{'tipo': 'origem', 'cep': cep},
function (data) {
var data = $('<div/>').append(data).find('input').map(function () {
return this.value;
}).get();
@paulofreitas
paulofreitas / bd_ibge.php
Last active December 20, 2015 04:08
Gerador de schema SQL para tabelas de estados e cidades diretamente do site do IBGE
<?php
header('Content-Type: text/plain; charset=utf-8');
$schema = <<<SQL
--
-- Tabela 'Estado'
--
CREATE TABLE Estado (
codEstado INT(1) NOT NULL AUTO_INCREMENT,
@paulofreitas
paulofreitas / buscaCEP.php
Last active December 20, 2015 04:09
Busca de CEP através do site dos Correios
<?php
/*
* Busca de CEP através do site dos Correios
*/
function buscaCEP($cep) {
$dom = new DOMDocument();
$dom->loadHTMLFile(
"http://www.correios.com.br/encomendas/malote/endereco.cfm?tipo=origem&cep=$cep");
$xpath = new DOMXPath($dom);
<?php
function formatSize($bytes, $force_unit = null, $format = null, $si = true)
{
// Format string
$format = ($format === null) ? '%01.2f %s' : (string) $format;
if (($si == false) || (strpos($force_unit, 'i') !== false)) {
// IEC prefixes (binary)
$units = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB');
@paulofreitas
paulofreitas / gist:6941716
Created October 11, 2013 20:41
Implementação do nono dígito com o Masked Input Plugin (http://digitalbush.com/projects/masked-input-plugin/).
var changePhoneMask = function () {
var phone = $(this).val().replace(/\D+/g, '');
if (phone.length == 2) {
if ($.inArray(phone, [11, 12, 13, 14, 15, 16, 17, 18, 19] > -1)) {
$(this).unmask().mask('(99) 99999-9999');
} else {
$(this).unmask().mask('(99) 9999-9999');
}
}
<?php
print date('m', strtotime('first day of 1 month ago'));
print date_create()->modify('first day of 1 month ago')->format('m');
print (new DateTime())->modify('first day of 1 month ago')->format('m');
#!/usr/bin/python
# Alteração in-place
with open('dados1.txt', 'r+w') as f:
lines = [' '.join(l.split() + [str(reduce(lambda x, y: x * y, map(int, l.split())))]) for l in f]
f.seek(0)
f.write('\n'.join(lines))
# Dois arquivos
open('dados2.txt', 'w').write('\n'.join(' '.join(l.split() + [str(reduce(
#!/usr/bin/env python
def matrix(n, i):
assert i < n
for j in range(n):
yield j + 1 + (i * n)
n = 10000
search_n = 50000