sexta-feira, 15 de janeiro de 2010

MySQL - Pesquisa automática por data - de 3 meses atrás até 1 dia atrás


OBS: Esta pesquisa esta limitada a 5 resultados (limit 5) e esta setada para trazer os resultados aleatóreamente.


select SEUS_CAMPOS from SUA_TABELA where (campo_data<SUBDATE(Now(), INTERVAL 1 DAY) and campo_data>SUBDATE(Now(), INTERVAL 91 DAY)) ORDER BY RAND() limit 5

terça-feira, 15 de dezembro de 2009

PHP Tirar Acentos - remove special characters



function retira_acentos($texto)
{
$array1 = array( "á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç"
, "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç" );
$array2 = array( "a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c"
, "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C" );
return str_replace( $array1, $array2, $texto);
}
$texto = retira_acentos($variavel_q_quer_tirar_acentos);
$variavel_q_quer_tirar_acentos = $texto;

Se quiser ainda tirar carateres especiais como $ ou ª ou º entre outros sugiro um uso combinado de regex com str_replace conforme abaixo:

function retira_acentos($texto)
{
$array1 = array( "á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç"
, "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç" );
$array2 = array( "a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c"
, "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C" );
    $texto= str_replace( $array1, $array2, $texto);
    $texto=preg_replace("/[^a-z0-9\s\-]/i", "", $texto);
    $texto=preg_replace("/\s/", "_", $texto); // Replace all spaces with underline
return $texto;
}

$texto = retira_acentos($variavel_q_quer_tirar_acentos);

Para não ter problema com o nome do arquivo, sugiro usar assim:

// Descobrir os 4 ultimos caracteres do arquivo, por exemplo .pdf
$final = $arquivo_name;
$final = substr($final,(strlen($final)-4),strlen($final));

$nome_sem_final=substr($arquivo_name, 0, -4);

$arquivo_name = retira_acentos($nome_sem_final).$final;


Para achar a extensão do arquivo temos também:

$info = pathinfo($filename);
$name = $info['filename'];
$ext  = $info['extension'];

// Shorter
$name = pathinfo($file, PATHINFO_FILENAME);

// Or in PHP 5.4
$name = pathinfo($filename)['filename'];

// Or in PHP 5.6, 7>
$ext=pathinfo($filename, PATHINFO_EXTENSION);
 
 
 



Achar fonte de uma imagem



Siga as instruções do link abaixo:
http://new.myfonts.com/WhatTheFont/

quinta-feira, 3 de dezembro de 2009

VirtualBox Guest Additions

Quem atualizou o Ubuntu 8.0.4 atualmente pode ter problemas. Para sanar use o abaixo:

use o comando uname -r (troque KERNELVERSION pelo resultado no comando abaixo)
1. sudo apt-get install build-essential linux-headers-KERNELVERSION
2. Clique 2x no icone do virtualbox additions na área de trabalho e clique em auto-run
3. Desligue e ligue novamente a virtual machine e pronto!

sexta-feira, 27 de novembro de 2009

MySql - Apagar varios dados em varias tabelas


Para apagar dados com um, ou mais campos em comum:

Exemplo:
delete FROM t1,t2,t3 USING t1 INNER JOIN t2 INNER JOIN t3 where t1.id=t2.id and t2.id=t3.id and clientemaster=830

sexta-feira, 6 de novembro de 2009

Linux update Apache, PHP e MySQL de uma só vez



Faça primeiro:
apt-get update
apt-get dist-upgrade (para + info sobre esse link clique aqui)

Depois
apt-get install apache2 mysql-server-5.0 php5 php5-mysql libapache2-mod-php5 php5-cli php-pear

E não se esqueça:
apt-get install bind9
apt-get install exim4

sexta-feira, 23 de outubro de 2009

PHP Verificar Email em um form

Verifica se o email é valido assim como a existência do domínio.

if ($email) {
function valida_email($email){
$email = explode("@",$email); //Separa o nome de usuário do dominio do e-mail
if(count($email) != 2){ //Testa se existe o nome de usuário e o e-mail
return 0;
}
list($user,$domain) = $email;
if(!preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*$/xi",$user)){ //Testa se o email segue o padrão
return 0;
}
if(!checkdnsrr($domain,"MX")){ //Testa se existe a entrada MX
return 0;
}
return 1;
}

$v_email = valida_email($email);

if ($v_email=='0') {
die ("Por favor verifique o endereço de email.");
}
}

quarta-feira, 21 de outubro de 2009

Linux Pasta Compartilhada no Sun VirtualBox

Colocar SEMPRE no final do /etc/fstab

Ubuntu versão 8.x.x
NOME_DA_PASTA_COMPARTILHADA /var/www vboxsf defaults 0 0

Ubuntu versão 9.x.x
NOME_DA_PASTA_COMPARTILHADA /var/www vboxsf

Não esquecer de instalar o VBOXADDITIONS!

quinta-feira, 15 de outubro de 2009

MySQL - Copiar apenas arquivos inexistentes de uma tabela para outra

Notar que TABELA1_BKP2 é a tabela que contém o maior numero de inputs e TABELA1 é a tabela onde serão inseridos os dados.
Isso se deve ao fato de eu ter um backup com mais dados que minha tabela original, devido a um erro na hora de apagar alguns dados, como em minha tabela original todo dia entram novos cadastros não havia a possibilidade de apenas passar por cima voltando o backup.
Vale lembrar que as tabelas tem o mesmo numero de campos, assim como todos os campos tem as mesmas características.

Para localizar:
select * from TABELA1_BKP2 left join TABELA1 on TABELA1_BKP2.id = TABELA1.id where TABELA1.id is null;

Para copiar:
INSERT INTO TABELA1 ( id , Empresa , Endereco , Cidade , Estado , cep , DDI , DDD , Fone , Fax , nome , Cargo , cpfID , Atividade_Principal , Atividade , email , ip , data , cnpj , locamapa , disponivel ) select TABELA1_BKP2.id, TABELA1_BKP2.Empresa, TABELA1_BKP2.Endereco, TABELA1_BKP2.Cidade, TABELA1_BKP2.Estado, TABELA1_BKP2.cep, TABELA1_BKP2.DDI, TABELA1_BKP2.DDD, TABELA1_BKP2.Fone, TABELA1_BKP2.Fax, TABELA1_BKP2.nome, TABELA1_BKP2.Cargo, TABELA1_BKP2.cpfID, TABELA1_BKP2.Atividade_Principal, TABELA1_BKP2.Atividade, TABELA1_BKP2.email, TABELA1_BKP2.ip, TABELA1_BKP2.data, TABELA1_BKP2.cnpj, TABELA1_BKP2.locamapa, TABELA1_BKP2.disponivel from TABELA1_BKP2 left join TABELA1 on TABELA1_BKP2.id = TABELA1.id where TABELA1.id is null;

Agradecimento especial ao DFroz pelas dicas. Valeu Bro!! ;)

segunda-feira, 5 de outubro de 2009

MySQL - Criar usuário - dar e revogar privilégios para cada tabela

usuario geral com todos os privilégios
MYSQL> GRANT ALL PRIVILEGES ON NOME_DA_DATABASE.* TO USUARIO@localhost IDENTIFIED BY 'SENHA' WITH GRANT OPTION;

usuario específico com alguns privilégios(os principais)
MYSQL> CREATE USER 'USUARIO'@'localhost' IDENTIFIED BY 'SENHA';
MYSQL> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON NOME_DA_DATABASE.* TO USUARIO@localhost IDENTIFIED BY 'SENHA';

alterar senha:
SET PASSWORD FOR usuario_q_quer_trocar_senha@"localhost" = PASSWORD('UMA_SENHA_BEM_DIFICIL');
FLUSH PRIVILEGES;

revogar privilégios:

REVOKE ALL ON NOME_DA_DATABASE.* FROM 'teste'@'localhost';
REVOKE ALL ON NOME_DA_DATABASE.* FROM 'teste'@'%';



MySQL Alterar senha do root

mysqladmin -u root password uma_senha_dificil

Obs: Este comando deve ser executado do shell do linux.

OU passwd

Linux bash file returns unexpected token `$'do\r''

open file in vi edit with   vi filename.sh   command; type in vi  :set ff=unix  command; save file with  :wq It will save the file with unix...