Archive for março, 2010

Utilizando a função now() do MySQL ou PostgreSQL

Algumas vezes é necessário fazer o registro do momento em que um INSERT (cadastro) foi feito.

Para fazer isso existe a função now() do MySQL ou do PostgreSQL. Essa função pode ser utilizada em um campo de data (DATE, DATETIME etc.). Basta colocar como valor no seu INSERT a função now() (sem as aspas), que ele vai cadastrar a data (ou data e hora, se for DATETIME) do servidor na hora em que o registro foi criado.

INSERT INTO `pessoas`
(`nome`, `data_registro`)
VALUES
('Tiago Passos', now())

Javascript para o usuário aumentar ou diminuir fonte do site

Script que adiciona um link para que o usuário aumente o tamanho da fonte do texto, e outro link para que o usuário diminua o tamanho da fonte do texto.
Fonte: http://www.yogodoshi.com/blog/utilitarios/script-para-o-usuario-poder-aumentar-e-diminuir-a-fonte-do-site

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>

<script type="text/javascript">
// Início do código de Aumentar/ Diminuir a letra

// Para usar coloque o comando:
// "javascript:mudaTamanho('tag_ou_id_alvo', -1);" para diminuir
// e o comando "javascript:mudaTamanho('tag_ou_id_alvo', +1);" para aumentar

var tagAlvo = new Array('p'); //pega todas as tags p//

// Especificando os possíveis tamanhos de fontes, poderia ser: x-small, small...
var tamanhos = new Array( '9px','10px','11px','12px','13px','14px','15px' );
var tamanhoInicial = 2;

function mudaTamanho( idAlvo,acao ){
if (!document.getElementById) return
var selecionados = null,tamanho = tamanhoInicial,i,j,tagsAlvo;
tamanho += acao;
if ( tamanho < 0 ) tamanho = 0;
if ( tamanho > 6 ) tamanho = 6;
tamanhoInicial = tamanho;
if ( !( selecionados = document.getElementById( idAlvo ) ) ) selecionados = document.getElementsByTagName( idAlvo )[ 0 ];

selecionados.style.fontSize = tamanhos[ tamanho ];

for ( i = 0; i < tagAlvo.length; i++ ){
tagsAlvo = selecionados.getElementsByTagName( tagAlvo[ i ] );
for ( j = 0; j < tagsAlvo.length; j++ ) tagsAlvo[ j ].style.fontSize = tamanhos[ tamanho ];
}
}
// Fim do código de Aumentar/ Diminuir a letra

</script>
</head>

<body>
<a href="javascript:mudaTamanho('texto', -1);">Diminuir</a>
<a href="javascript:mudaTamanho('texto', 1);">Aumentar</a>

<div style="font-size: 11px;" id="texto">
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur  scelerisque purus ut pede. Ut pulvinar diam vitae tellus. Nunc  ultricies. Nam rhoncus justo vel dui. Morbi suscipit enim. Praesent dui  dui, tincidunt eget, feugiat vel, tincidunt vel, elit. Curabitur tempus  consequat nunc. Aliquam erat volutpat. Vivamus a massa non libero  posuere blandit. Nulla ut velit quis leo luctus tincidunt. Vestibulum  eget leo in augue ornare fringilla. Suspendisse suscipit dui. </p>
<p>Nullam ultrices justo eget mi. Curabitur porta augue eget magna. Nam  imperdiet, ipsum eu aliquet interdum, justo ipsum pulvinar quam, quis  convallis mi sapien eu ante. Etiam ac sem. Ut bibendum. Nulla facilisi.  Vestibulum odio. Sed accumsan. Donec a dui. Cras lorem augue, egestas  vel, accumsan vel, elementum sit amet, nisl. Cras id dui. Sed nulla  ipsum, pulvinar et, suscipit a, vehicula eu, arcu. Fusce auctor nibh  eget risus. Vestibulum ante ipsum primis in faucibus orci luctus et  ultrices posuere cubilia Curae; Vestibulum vitae ante in odio dapibus  lobortis. </p>
</div>

</body>
</html>

Formatar datas usando o DATE_FORMAT() do MySQL

Quem já trabalhou com datas no MySQL sabe que o formato que elas são armazenadas é, algumas vezes, meio inconveniente de se trabalhar. É possível modificar esse formato utilizando de programação (PHP, por exemplo), mas é muito mais simples já trazer a data no formato certo, diretamente do banco.

O banco de dados retorna uma data no seguinte formato: 2010-03-18 00:55;23 ou talvez nesse: 2010-03-18 (sem as horas). Como podemos fazer para que ele já traga no formato desejado, por exemplo: 18/03/2010?

É bem simples. Na hora de fazer o SELECT, utilizamos a função DATE_FORMAT() do MySQL. Ela pega a data no formato original e manipula da forma que você quizer.

Exemplo 1:

SELECT *,date_format(`data`,'%d/%m/%Y') as `data_formatada` FROM `pessoas`

Nesse caso, ele pegou a data contida no campo data, converteu para formato DD/MM/YYYY e nomeou o campo com a data formatada para data_formatada.

Exemplo 2:

SELECT *,date_format(`data`,'%d-%m às %Hh%i') as `data_formatada` FROM `pessoas`

No segundo exemplo o formato mudou para DD-MM às HHhMM, Exemplo: 25/06 às 14h35.

Cada ítem da data tem um identificador, veja abaixo a lista deles:

ID     Descrição
%a     Nome da Semana Abreviado (Seg a Dom)
%b     Nome do mês Abreviado (Jan a Dez)
%c     Mês de forma numérica (1 a 12)
%D     Dia do mês com o sufixo Inglês (1st, 2nd, 3rd, …)
%d     Dia do Mês de forma numérica (01 a 31)
%e     Dia do Mês de forma numérica (1 a 31)
%f     Micro segundos (000000..999999)
%H     Horas (00 a 23)
%h     Horas (01 a 12)
%I     Horas (01 a 12)
%i     Minutos de forma numérica (00 a 59)
%j     Dia do Ano (001 a 366)
%k     Horas (0 a 23)
%l     Horas (1 a 12)
%M     Nome do mês (Janeiro a Dezembro)
%m     Mês de forma numérica (01 a 12)
%p     AM ou PM
%r     Horas, 12-horas (hh:mm:ss seguidos de AM ou PM)
%S     Segundos (00 a 59)
%s     Segundos (00 a 59)
%T     Horas, 24-horas (hh:mm:ss)
%U     Semana (00 a 53), onde Domingo é o primeiro dia da semana
%u     Semana (00 a 53), onde Segunda é o primeiro dia da semana
%V     Semana (00 a 53), onde Domingo é o primeiro dia da semana; usado com %X
%v     Semana (00 a 53), onde Segunda é o primeiro dia da semana; usado com %x
%W     Nome do dia da semana (Segunda a Domingo)
%w     Dia da semana (0=Domingo a 6=Sábado)
%X     Dia da semana onde Domingo é o primeiro dia da semana, de forma numérica com 4 dígitos, usado com %V
%x     Ano da semana, onde Segunda é o primeiro dia da semana, de forma numérica, com 4 dígitos, usado com %v
%Y     Ano numérico com 4 dígitos
%y     Ano numérico com 2 dígitos
%%     Um simples caracter “%”
%x     x, para qualquer “x” não listado acima

Função em PHP para copiar recursivamente um diretório

Geralmente quando se copia uma pasta usando o PHP, não é possível copiar seus subdiretórios, mas sim apenas o arquivos que estão diretamente dentro dela. Essa função mostra como copiar tudo que estiver dentro de uma pasta.

/*
* Copiar todos os arquivos e subdiretórios dentro de um diretório
*
* @Autor: Aidan Lister <aidan ARROBA php.net>
* @Tradução: Tiago Passos <voxtiago ARROBA gmail.com>
* @versão 1.0.1
* @parâmetro de origem: $source
* @parâmetro de destino: $dest
* @retorna TRUE se houver sucesso e FALSE se houver erro
* @Exemplo de uso: copyr("site","backup_site");
*/

function copyr($source, $dest)
{
   // COPIA UM ARQUIVO
   if (is_file($source)) {
      return copy($source, $dest);
   }

   // CRIA O DIRETÓRIO DE DESTINO
   if (!is_dir($dest)) {
      mkdir($dest);
      echo "DIRET&Oacute;RIO $dest CRIADO<br />";
   }

   // FAZ LOOP DENTRO DA PASTA
   $dir = dir($source);
   while (false !== $entry = $dir->read()) {
      // PULA "." e ".."
      if ($entry == '.' || $entry == '..') {
         continue;
      }

      // COPIA TUDO DENTRO DOS DIRETÓRIOS
      if ($dest !== "$source/$entry") {
         copyr("$source/$entry", "$dest/$entry");
         echo "COPIANDO $entry de $source para $dest <br />";
      }
   }

   $dir->close();
   return true;

}
Geralmente quando se copia uma pasta usando o PHP, não é possível copiar seus subdiretórios, mas sim apenas o arquivos que estão diretamente dentro dela. Essa função mostra como copiar tudo que estiver dentro de uma pasta.

Texto aparece com caracteres estranhos. Resolvendo com PHP

Certa vez tive um problema em um site que estava trabalhando. Os caracteres que possuíam acento apareciam com erro (como que corrompidos). Depois de pesquisar um pouco, consegui descobrir a solução.

Basta colocar o seguinte comando na página que apresentar esse erro:

<?php
header('Content-Type: text/html; charset=ISO-8859-1');
?>

Isso fará com que o charset mude para ISO 8859-1. Caso queira que seja mudado para outro charset, é só substituir.


Alterar dono/proprietário de pasta no Linux Debian

O dono da pasta é o único, além do root, que pode – por exemplo – criar e excluir arquivos. Existem pastas que o dono é o root, mas você quer poder acessar com seu usuário normal. É isso que vou explicar aqui. É bem provável que funcione da mesma forma no Ubuntu, mas não cheguei a testar. Quem puder testar, favor colocar nos comentários a resposta! 🙂

Abra o terminal: Aplicações/Acessórios/Terminal

Adquira permissões de root:
su

Depois adicione as permissões à pasta que você quer assim:

chown nome_do_usuario:nome_do_grupo -hR caminho_da_pasta

No meu caso ficou assim:

chown tiagopassos:tiagopassos -hR /var/www

Pronto. Agora você pode acessar a pasta que escolheu com o usuário comum que definiu 🙂


  • Publicidade

  • Redes Sociais

    Facebook  Twitter
  • Estatísticas

    Page Views (desde março de 2010):

    Estatísticas detalhadas
  • Novidades por e-mail!

    Digite seu e-mail:


    Fique tranquilo. Seu e-mail não será usado para outros fins, e você poderá se descadastrar quando quizer.

    Eu!

    Tiago Passos
    Todo o conteúdo desse site esta licenciado sob a licença Creative Commons 3.0 (CC BY 3.0). Você pode copiar e modificar o conteúdo desde que cite o autor.
    iDream theme by Templates Next | Powered by WordPress