Inversor de URL’s
A gente sempre acha naqueles protetores de links urls invertidas. O que realmente atrapalha! Então eu tava usando por conta essa ferramenta aqui, tá no site da Sr. Web, mas de autoria minha =)
Sugestões são bem vindas! Clique no botão abaixo para acessar:
Inversor de URL Read MoreAcid2 e Acid3 no IE9 e na concorrência
A Microsoft liberou o IE9 essa semana, e em dia conseguiram 2 milhões de downloads. Por enquando a atualização do navegador é opcional e ele só é suportado apartir do Vista. Usuários do Windows XP continuarão usando a versão 8 do navegador, e todos, inclusive a Miscrosoft, esperam que as pessoas abandonem o IE6.
E hoje, lendo um artigo do Meiobit em que eles diziam que a nova versão é para o usuário doméstico e não pro harduser, me deparei com o seguinte:
Não adianta gastar homem/hora, um recurso finito para implementar alguma bobagem que ninguém usa só pra fazer bonito num Acid3 da vida. Que aliás só diz respeito a nerds, que não são o público-alvo do IE9.
Pra quem não conhece, os Acid Tests, testam a performance dos navegadores em relação aos webstandards. O IE sempre se saiu muito mal nos testes, abaixo uma comparação usando o Acid 2:
Clique no botão de leia mais para continuar lendo este artigo.
“CALA BOCA GALVAO” em 1º lugar nos Trending Topics do Twitter
Nimguém está imune.
Começou uma campanha no Twitter logo após os shows de abertura da copa chamada “CALABOCAGALVAO“. Porque o cargo de locutor pra ele é pouco, precisa de um monólogo pra estar satisfeito. E o pior é ele achar que tá “abafando”, que provavelmente se pensa tão popular, não escapou disso. Finalmente o povo agora pode dar um feedback do que acha do locutor mais popular brasileiro. O site What the Trend divulga estatísticas em tempo real dos trending topics do twitter.
A hashtag pulou rapidamente do 3º lugar pro 1º em cerca de 3 horas! É a típica propaganda negativa, e o pior, subiu rápido, porque o os estrangeiros ajudaram na campanha perguntando: “what is #CALABOCAGALVAO“?
E aí pronto! O humor entra em cena. Foi espalhado que Galvão era um pássaro em extinsão, ou que seria o novo single da Lady Gaga, ou as duas coisas combinadas, que seria um single sobre o pássaro em extinsão no Brasil. Depois disso, virou baderna!
O What The Trend ainda dá uma explicação:
People are saying “Shut Up Galvão”, Galvão Bueno is a Brazilian sports commentator who is a little annoying sometimes. Not a rare bird and not a Lady Gaga Single.
E tem também, a versão brasileira da explicação:
Fico imaginando, como deve estar se sentindo Galvão Bueno, provavelmente puto, porém contente, acho que ele acredita na filosofia: “Falem mal, mas falem de mim”. Com certeza amanhã pela manhã ele será o cara mais procurado da Copa do Mundo. Quero ver ele dar as caras no programa Bem Amigos da SporTV e falar agora de Twitter! Agora Galvão Bueno é celebridade mundial!
E agora, abracem a campanha #CALABOCAFAUSTAO!.
Read MoreClasse PHP para integridade de dados.
Esse código é meio temporário, em breve eu coloco ele numa classe e disponibilizo para vocês:
Vocês podem usar este código a vontade nos trabalhos de vocês.
Vejam abaixo:
[php smarttabs="true" tabsize="4" toolbar="true"]<?php
//Troca aspas simples por entities
function _no_single_quotes($str) {
return str_replace("’","'",$str);
}
//Retira as barras inversas
function _no_slashes($str) {
return str_replace("\","",$str);
}
//Deixa a string somente com números
function _just_numbers($str) {
return ereg_replace("[^0-9]","",$str);
}
//Retira: espaços no início e fim, barras inversas
//Troca por entities: ampersand (&), aspas dupla ("), aspas simples (‘), menor que (<), maior que (>)
function fix_string($str) {
return trim(_no_slashes(htmlspecialchars($str,ENT_QUOTES)));
}
//Trata uma string para ser usada em URLs ou nomes de arquivos
function fix_to_url($str) {
$str_lower = strtolower(trim($str)); //remove espaços do início e fim e deixa tudo em minúsculo
$strtr = strtr($str_lower, ‘ÀÁÃÂÉÊÍÓÕÔÚÜÇÑàáãâéêíóõôúüçñ ‘,’aaaaeeiooouucnaaaaeeiooouucn-’); //traduz alguns caracteres
$str_replace = ereg_replace(‘[^0-9a-z-]‘,”,$strtr); //deixa a string apenas com alfa numéricos e com os traçõs (-)
return ereg_replace(‘-{1,}’, ‘-’, $str_replace); //retorna a string formatada para uma URL (aplica um novo replace para tirar os traços que ficaram em sequência (—) )
}
//Inversão entre os formatos dd/mm/yyyy e yyyy-mm-dd
function fix_date($date) {
$x = split("[^0-9]",$date);
$sep = (strlen($x[0]) <= 2)?"-":"/";
return $x[2].$sep.$x[1].$sep.$x[0];
}
//Formata um datetime para o padrão português Brasil
function fix_datetime($datetime) {
$x = explode(" ",$datetime);
return fix_date($x[0])." ".$x[1];
}
//Formatar o número de telefone/fax
function fix_phone($number) {
$x = _just_numbers($number);
if (strlen($x) >= 10) {
$final = substr($x,-4);
$pre = substr($x,-8,4);
$ddd = substr($x,-10,2);
return "($ddd) $pre-$final";
} else {
return $number;
}
}
//Formata o número do CPF
function fix_cpf($cpf) {
$cpf = _just_numbers($cpf);
return substr($cpf,0,3).".".substr($cpf,3,3).".".substr($cpf,6,3)."-".substr($cpf,9,2);
}
//Formata o número do CNPJ
function fix_cnpj($cnpj) {
$cnpj = _just_numbers($cnpj);
return substr($cnpj,0,2).".".substr($cnpj,2,3).".".substr($cnpj,5,3)."/".substr($cnpj,8,4)."-".substr($cnpj,12,2);
}
//Formata o CEP
function fix_cep($cep) {
$cep = _just_numbers($cep);
return substr($cep,0,5)."-".substr($cep,5,3);
}
//Retira atributos e tags (Útil para limpar o conteúdo submetido através de um textarea com o editor TinyMce)
//Utilize o parâmetro $tags para informar quais tags são aceitas e o parâmetro $attributes para informar quais atributos *não* são aceitos
function fix_html_text($text, $tags = array("b","strong","i","em","strike","ul","ol","li","blockquote","q","cite","a","img","object","param","embed","sub","sup","table","th","tr","td","caption","h1","h2","h3","h4","h5","h6","p","pre","address","br","hr"), $attributes = array("style")) {
$text = stripslashes($text); //Remove aspas de addslashes (o valor sempre será recebido com aspas, em /config/globals_cfg.php todos os $_POST são configurados para receber addslashes)
//Atributos não permitidos
foreach ($attributes as $attribute) {
preg_match_all("|$attribute="(.*)"|U",$text,$out_not_allowed, PREG_PATTERN_ORDER);
foreach ($out_not_allowed[0] as $attribute_not_allowed) {
$attributes_not_allowed[] = $attribute_not_allowed;
}
}
//Array com todas as tags permitidas
foreach ($tags as $tag) {
$allowed_tags[] = "<$tag>";
}
$replace = str_replace($attributes_not_allowed,null,$text); //substitui por null todos os atributos não desejados
$replace2 = eregi_replace(" {1,}>",">",$replace); //retira algumas sobras, ex. <strong > para <strong>
$replace3 = eregi_replace(" {1,}"," ",$replace2); //substitui sequências de espaços por um espaço, ex. <img src="foto.jpg" /> para <img src="foto.jpg" />
$replace4 = eregi_replace("<[A-Za-z]{1,}>( | )?</[A-Za-z]{1,}>","",$replace3); //exclui tags vazias, ex. <p></p>, <div> </div>
$fixhtml = $replace4;
if($encoding == ‘iso-8859-1′){
return _no_single_quotes(html_entity_decode(strip_tags($fixhtml,implode($allowed_tags))));
} else {
return _no_single_quotes(strip_tags($fixhtml,implode($allowed_tags)));
}
}
//Limita a quantidade de palavras de uma string
function word_limit($str, $limit = 100) {
$words = explode(" ",$str);
if (count($words) > $limit) {
for ($i = 0; $i <= $limit-1; $i++) {
$w[] = $words[$i];
}
return implode(" ",$w)."…";
} else {
return $str;
}
}
//Quebra uma string em linhas usando um caracter de quebra de linha
function word_wrap($str, $width = 75, $break = "<br />") {
return wordwrap($str,$width,$break,1);
}
//Checa se é um email válido
function is_email($email) {
return (preg_match("/^([a-zA-Z0-9._-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/",$email))?true:false;
}
//Checa se é uma data válida
//Utilize o parâmetro $format para informar o formato da data a ser validada
function is_date($date, $format = "dd/mm/yyyy") {
$w = split("[^a-zA-Z0-9]",$format);
$x = split("[^0-9]",$date);
$z = (count($w) === count($x))?array_combine($w, $x):false;
return ($z and checkdate($z['mm'],$z['dd'],$z['yyyy']))?true:false;
}
//Checa se pode ser um telefone
function is_phone($number) {
return (strlen(_just_numbers($number)) >= 10)?true:false;
}
function is_cpf($cpf) {
/**
* Função para validar CPF (Cadastro de Pessoas Físicas)
*
* @author Paulo Ricardo F. Santos <v1d4l0k4.at.gmail.dot.com>
* @copyright Copyright © 2006, Paulo Ricardo F. Santos
* @license http://creativecommons.org/licenses/by-nc-sa/2.0/br Commons Creative
* @version 20070316
* @param string $cpf CPF que deseja validar
* @return bool true caso seje válido, false caso não seje válido
*/
$cpf = str_pad(ereg_replace(‘[^0-9]‘, ”, $cpf), 11, ’0′, STR_PAD_LEFT);
if (strlen($cpf) != 11 || $cpf == ’00000000000′ || $cpf == ’99999999999′) {
return false;
} else {
for ($t = 9; $t < 11; $t++) {
for ($d = 0, $c = 0; $c < $t; $c++) {
$d += $cpf{$c} * (($t + 1) – $c);
}
$d = ((10 * $d) % 11) % 10;
if ($cpf{$c} != $d) {
return false;
}
}
return true;
}
}
function is_cnpj($cnpj) {
/**
* Função para validar CNPJ (Cadastro Nacional da Pessoa Jurídica)
*
* @author Paulo Ricardo F. Santos <v1d4l0k4.at.gmail.dot.com>
* @copyright Copyright © 2006, Paulo Ricardo F. Santos
* @license http://creativecommons.org/licenses/by-nc-sa/2.0/br Commons Creative
* @version 20070316
* @param string $cnpj CNPJ que deseja validar
* @return bool true caso seje válido, false caso não seje válido
*/
$cnpj = str_pad(ereg_replace(‘[^0-9]‘, ”, $cnpj), 14, ’0′, STR_PAD_LEFT);
if (strlen($cnpj) != 14) {
return false;
} else {
for ($t = 12; $t < 14; $t++) {
for ($d = 0, $p = $t – 7, $c = 0; $c < $t; $c++) {
$d += $cnpj{$c} * $p;
$p = ($p < 3) ? 9 : –$p;
}
$d = ((10 * $d) % 11) % 10;
if ($cnpj{$c} != $d) {
return false;
}
}
return true;
}
}
//Verfica se a string pode ser um CEP (número com 8 dígitos)
function is_cep($cep) {
return (strlen(_just_numbers($cep)) == 8)?true:false;
}
//Verifica se a string pode ser uma imagem (baseado na extensão), não é verificado se o arquivo é realmente uma imagem
function is_img($str, $img_exts = array("JPG","JPEG","jpg","jpeg","GIF","gif","PNG","png")) {
$ext = _extension($str);
return (in_array($ext,$img_exts))?true:false;
}
?>[/php]
Read MoreThemes e Labs no Google Apps
O Google Apps implementou hoje o recurso de temas para o Gmail para a sua versão corporativa. Os temas presentes são os mesmos contidos na versão do Gmail atual sem qualquer alteração.
Pra quem gosta de dar uma customizada no Gmail e enjoou daquele verde horroroso das labels, isso é muito bem. Pois aquele verde realmente era irritante.
Percebi também que o Gmail Labs também está ativo, mas não sei dizer ao certo se já estava ativo ou não, pois percebi apenas hoje.
UPDATE: Descobri hoje que o Google inaugurou a versão do labs para o Apps hoje.
Read More







Comentários