<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leandro Vieira Pinho´s Blog &#187; leandro</title>
	<atom:link href="http://leandrovieira.com/archive/author/leandro/feed" rel="self" type="application/rss+xml" />
	<link>http://leandrovieira.com</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 17 May 2010 18:08:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>jQuery resetDefaultValue plugin</title>
		<link>http://leandrovieira.com/archive/jquery-resetdefaultvalue-plugin</link>
		<comments>http://leandrovieira.com/archive/jquery-resetdefaultvalue-plugin#comments</comments>
		<pubDate>Wed, 01 Aug 2007 14:18:38 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=22</guid>
		<description><![CDATA[Desenvolvi um simples plugin para a jQuery, resetDefaultValue, com o intuito de limpar e resgatar o atributo value definido em elementos do tipo input. Embora, o plugin também funciona em elementos do tipo textarea. Tal plugin foi desenvolvido com duas intenções: Precisei para um projeto em que estou envolvido; Decidir compartilhar com quem utiliza a [...]]]></description>
			<content:encoded><![CDATA[<p>Desenvolvi um simples plugin para a jQuery, resetDefaultValue, com o intuito de limpar e resgatar o atributo value definido em elementos do tipo input. Embora, o plugin também funciona em elementos do tipo textarea.</p>
<p>Tal plugin foi desenvolvido com duas intenções:</p>
<ol>
<li>Precisei para um projeto em que estou envolvido;</li>
<li>Decidir compartilhar com quem utiliza a jQuery;</li>
</ol>
<p><strong>Código do jQuery resetDefaultValue plugin</strong></p>
<pre>
/**
 * jQuery resetDefaultValue plugin
 * @version 0.9.1
 * @author Leandro Vieira Pinho <leandro.w3invent@gmail.com>
 */
jQuery.fn.resetDefaultValue = function() {
	function _clearDefaultValue() {
		var _$ = $(this);
		if ( _$.val() == this.defaultValue ) { _$.val(''); }
	};
	function _resetDefaultValue() {
		var _$ = $(this);
		if ( _$.val() == '' ) { _$.val(this.defaultValue); }
	};
	return this.click(_clearDefaultValue).focus(_clearDefaultValue).blur(_resetDefaultValue);
}
</pre>
<p><strong>Forma de uso do jQuery resetDefaultValue plugin</strong></p>
<pre>
$(function() {
	$('input').resetDefaultValue(); // for all input elements
	$('input.className').resetDefaultValue(); // for some elements
	$('#q').resetDefaultValue(); // for a especific element
	$('input[@type=text]').resetDefaultValue(); // avoid button/reset/submit buttons
	$('textarea').resetDefaultValue(); // work with textarea too
});
</pre>
<p> <img src='http://leandrovieira.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/jquery-resetdefaultvalue-plugin/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Revista iMasters #2</title>
		<link>http://leandrovieira.com/archive/revista-imasters-2</link>
		<comments>http://leandrovieira.com/archive/revista-imasters-2#comments</comments>
		<pubDate>Fri, 27 Jul 2007 02:40:34 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[iMasters]]></category>
		<category><![CDATA[revista]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=145</guid>
		<description><![CDATA[Em março deste ano, falei a respeito da Revista iMasters aqui no Blog. Como a edição é trimestral, neste mês de Julho, temos a segunda edição da Revista iMasters. Meu exemplar já está a caminho, quanta ansiedade. Não só pelo conteúdo da revista, que já comprovou sua excelência na primeira edição, mas também pelo fato [...]]]></description>
			<content:encoded><![CDATA[<p>Em março deste ano, <a href="http://leandro.w3invent.com.br/archive/revista-imasters">falei a respeito</a> da <a href="http://revistaimasters.com.br/">Revista iMasters</a> aqui no Blog. Como a edição é trimestral, neste mês de Julho, temos a segunda edição da <a href="http://revistaimasters.com.br/">Revista iMasters</a>.</p>
<p>Meu exemplar já está a caminho, quanta ansiedade. Não só pelo conteúdo da revista, que já comprovou sua excelência na primeira edição, mas também pelo fato da minha contribuição com um artigo. Que fala sobre <strong>Desenvolvimento e Padronização Web: A objetividade e preocupação no desenvolvimento de recursos de sistemas web com foco no usuário</strong>.</p>
<p>A edição de julho da <a href="http://revistaimasters.com.br/">Revista iMasters</a> traz como matéria de capa uma visita à McCann Erickson para um estudo completo do case Prisma, considerado um divisor de águas em integração de mídias no Brasil.</p>
<p>Suzana Apelbaum, da África, fala tudo na entrevista, enquanto a seção equipe visita a Agência Espalhe, pioneira em Marketing de Guerrilha no Brasil. Acompanhe muito mais nesta edição.</p>
<p>Minha sugestão é que você acesse o site da revista agora, e <a href="http://revistaimasters.com.br/comprar.php">adquira a sua</a>. Lembre que a edição é limitada.</p>
<p>Um abraço.</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/revista-imasters-2/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery tem me poupado consideráveis linhas de código</title>
		<link>http://leandrovieira.com/archive/jquery-tem-me-poupado-consideraveis-linhas-de-codigo</link>
		<comments>http://leandrovieira.com/archive/jquery-tem-me-poupado-consideraveis-linhas-de-codigo#comments</comments>
		<pubDate>Wed, 25 Jul 2007 18:30:07 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[jquery]]></category>
		<category><![CDATA[freeDOM.js]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=144</guid>
		<description><![CDATA[A biblioteca de JavaScript jQuery, tem me poupando consideráveis linhas de código. Meu tempo, cada dia que passa, se torna mais escasso. Então, quando posso codificar menos e viver mais, a felicidade é tamanha que você nem imagina. Vou demonstrar o pedaço de um código que eu havia codificado alguns meses utilizando a freeDOM.js, e [...]]]></description>
			<content:encoded><![CDATA[<p>A biblioteca de JavaScript <a href="http://jquery.com/">jQuery</a>, tem me poupando consideráveis linhas de código. Meu tempo, cada dia que passa, se torna mais escasso. Então, quando posso codificar menos e viver mais, a felicidade é tamanha que você nem imagina.</p>
<p>Vou demonstrar o pedaço de um código que eu havia codificado alguns meses utilizando a <a href="http://www.metzen.com.br/freedom/">freeDOM.js</a>, e hoje, resolvi refazê-lo utilizando a <a href="http://jquery.com/">jQuery</a>. Observe:</p>
<p>Pedaço de código utilizando a <a href="http://www.metzen.com.br/freedom/">freeDOM.js</a></p>
<pre>
...
var arrTagInput, i, tagInput;
arrTagInput = $tags('input');
for (i = 0; i < arrTagInput.length; i++) {
	tagInput = arrTagInput[i];
	if ( (tagInput.getAttribute('id') !== null &#038;&#038; tagInput.getAttribute('id') !== '') &#038;&#038; tagInput.getAttribute('id').match(/^sbt-cart-update([0-9]+)$/) ) {
		tagInputId = tagInput.getAttribute('id');
		$remove($(tagInputId));
	}
}
...
</pre>
<p>Pedaço de código utilizando a <a href="http://jquery.com/">jQuery</a>.</p>
<pre>
...
$('input[@id*=sbt-cart-update]').remove();
...
</pre>
<p>Sim, somente.</p>
<p>Meu objetivo com ambos os códigos é selecionar todos os elementos input da página, com os elementos selecionados, irei filtrá-lo, pegando apenas aqueles que contenham em seu atributo ID o seguinte: "sbt-cart-update".</p>
<p>Satisfeito.</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/jquery-tem-me-poupado-consideraveis-linhas-de-codigo/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>É ímpar ou par? Confira facilmente usando o PHP</title>
		<link>http://leandrovieira.com/archive/e-impar-ou-par-confira-facilmente-usando-o-php</link>
		<comments>http://leandrovieira.com/archive/e-impar-ou-par-confira-facilmente-usando-o-php#comments</comments>
		<pubDate>Fri, 01 Jun 2007 15:04:03 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=143</guid>
		<description><![CDATA[Utilizando o seguinte código: $status = (1 &#038; $number) ? 'Ímpar' : 'Par'; Verificamos se o número informado é ímpar ou par, simples ou não? Leia o original Odd and Even Numbers]]></description>
			<content:encoded><![CDATA[<p>Utilizando o seguinte código:</p>
<pre>
$status = (1 &#038; $number) ? 'Ímpar' : 'Par';
</pre>
<p>Verificamos se o número informado é ímpar ou par, simples ou não?</p>
<p>Leia o original <a href="http://www.jellyandcustard.com/2006/07/13/odd-and-even-numbers/">Odd and Even Numbers</a></p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/e-impar-ou-par-confira-facilmente-usando-o-php/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Curso de Dreamweaver Avançado</title>
		<link>http://leandrovieira.com/archive/curso-de-dreamweaver-avancado</link>
		<comments>http://leandrovieira.com/archive/curso-de-dreamweaver-avancado#comments</comments>
		<pubDate>Tue, 29 May 2007 18:02:36 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[curso]]></category>
		<category><![CDATA[dreamweaver]]></category>
		<category><![CDATA[iped]]></category>
		<category><![CDATA[padrões da web]]></category>
		<category><![CDATA[tableless]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=142</guid>
		<description><![CDATA[Estou ministrando aulas de Dreamweaver no iPED Premier através do Curso de Dreamweaver Avançado. O curso é totalmente on-line, contendo exercícios e exemplos práticos. Criei o curso com uma metodologia voltada para os padrões da web, tableless e o desenvolvimento web em camadas. Acredito que você, leitor deste blog, tem conhecimento sobre a ferramenta. Sendo [...]]]></description>
			<content:encoded><![CDATA[<p>Estou ministrando aulas de Dreamweaver no <a href="http://iped.com.br/premier/">iPED Premier</a> através do <a href="http://iped.com.br/premier/detalhes/5290/dreamwaver-avancado/">Curso de Dreamweaver Avançado</a>.</p>
<p>O curso é totalmente on-line, contendo exercícios e exemplos práticos. Criei o curso com uma metodologia voltada para os padrões da web, tableless e o desenvolvimento web em camadas.</p>
<p>Acredito que você, leitor deste blog, tem conhecimento sobre a ferramenta. Sendo assim, ajude-me divulgando o <a href="http://iped.com.br/premier/detalhes/5290/dreamwaver-avancado/">Curso de Dreamweaver Avançado</a> para seus amigos <img src='http://leandrovieira.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Conteúdo do Curso:</strong></p>
<p>   * Definição de uma página web estática<br />
   * Conhecendo o HTML/XHTML<br />
   * As diferenças entre o XHTML e o HTML<br />
   * O Dreamweaver e a forma como ele trabalha com o HTML e o XHTML<br />
   * Funcionamento e a sintaxe da CSS<br />
   * Uma visão sobre a web semântica<br />
   * Uma visão sobre o desenvolvimento web em camadas<br />
   * Explorando a interface do Dreamweaver<br />
   * O Painel de preferências do Dreamweaver<br />
   * Como Como definir sites e projetos no Dreamweaver<br />
   * Criando uma página no Dreamweaver<br />
   * Salvando arquivos no Dreamweaver<br />
   * As opções de visualização de arquivos do Dreamweaver<br />
   * Pré-visualização de páginas<br />
   * Visualização de meta-tags e informações de cabeçalho do documento<br />
   * Inserindo imagens no Document window<br />
   * Inserindo placeholder no Document window<br />
   * Como alterar um placeholder por uma imagem<br />
   * Edição de imagens com o Dreamweaver<br />
   * Inserindo conteúdos do Flash no Dreamweaver<br />
   * Sobre a inserção de vídeos Flash no Dreamweaver<br />
   * Criando formulários HTML<br />
   * Visão geral sobre acessibilidade em formulários web no Dreamweaver<br />
   * Compreendendo o caminho das páginas<br />
   * Criando mapas de imagens<br />
   * Tipos de mídias nas CSS<br />
   * Como inter-relacionar a camada de apresentação à camada de conteúdo<br />
   * Sobre o painel Behaviors<br />
   * Os eventos mais utilizados no desenvolvimento web<br />
   * Sobre os padrões da web e a metodologia tableles<br />
   * Planejando a criação de um mini-site<br />
   * Validando o formulário de contato &#8211; camada de comportamento<br />
   * Configuração FTP</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/curso-de-dreamweaver-avancado/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Como evitar conflitos com a função dólar $() de frameworks JavaScript</title>
		<link>http://leandrovieira.com/archive/como-evitar-conflitos-com-a-funcao-dolar-de-frameworks-javascript</link>
		<comments>http://leandrovieira.com/archive/como-evitar-conflitos-com-a-funcao-dolar-de-frameworks-javascript#comments</comments>
		<pubDate>Wed, 23 May 2007 14:07:28 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[framework]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[spry]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=141</guid>
		<description><![CDATA[Praticamente todos os frameworks JavaScript possuem a função dólar $(); e cada um deles com suas peculiaridades. O que significa dizer que em certos momentos conflitos entre essas funções ocorrerão. Alguns frameworks oferecem soluções para que tal conflito seja evitado; consulte a documentação de cada framework e aplique-a. Recentemente, precisei utilizar o jQuery para utilizar [...]]]></description>
			<content:encoded><![CDATA[<p>Praticamente todos os frameworks JavaScript possuem a função dólar $(); e cada um deles com suas peculiaridades. O que significa dizer que em certos momentos conflitos entre essas funções ocorrerão.</p>
<p>Alguns frameworks oferecem soluções para que tal conflito seja evitado; consulte a documentação de cada framework e aplique-a.</p>
<p>Recentemente, precisei utilizar o <a href="http://jquery.com/">jQuery</a> para utilizar alguns efeitos que ele oferece, e como desenvolvi todo o projeto utilizando a <a href="http://www.metzen.com.br/freedom/">freeDOM</a>, o conflito entre as funções dólar $() de ambos os frameworks foi inevitável.</p>
<p>Para impedir que a função dólar $() do <a href="http://jquery.com/">jQuery</a> entre em conflito com outros frameworks, utilize a seguinte solução:</p>
<pre>
var $j = jQuery.noConflict();
//ou
var $foo = jQuery.noConflict();
//ou
var $comoQuiser = jQuery.noConflict();
</pre>
<p>Para quem utiliza o <a href="http://labs.adobe.com/technologies/spry/">Spry</a> (alguém utiliza?) a indicação é renomear a função $() para Spry.$(); também é possível fazer o processo reverso, ou seja:</p>
<pre>
var $ = Spry.$;
</pre>
<p>A <a href="http://www.metzen.com.br/freedom/">freeDOM</a>, ainda não pensei neste aspecto, mas levaremos esse detalhe no próximo release.</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/como-evitar-conflitos-com-a-funcao-dolar-de-frameworks-javascript/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Como definir uma categoria padrão no Tasks</title>
		<link>http://leandrovieira.com/archive/como-definir-uma-categoria-padrao-no-tasks</link>
		<comments>http://leandrovieira.com/archive/como-definir-uma-categoria-padrao-no-tasks#comments</comments>
		<pubDate>Thu, 10 May 2007 17:10:57 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[tasks]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=140</guid>
		<description><![CDATA[Através do novo gerenciador de categorias do Tasks é possível definir uma categoria padrão, definir a posição (ordem) de cada categoria, criar uma categoria, atualizar as categorias existentes ou deletá-las. Todo esses recursos estão em uma única tela, e são utilizados de forma simples e intuitiva. Na opção Gerenciar minhas categoiras, é demonstrado todas as [...]]]></description>
			<content:encoded><![CDATA[<p>Através do novo gerenciador de categorias do <a href="http://tasks.com.br/">Tasks</a> é possível definir uma categoria padrão, definir a posição (ordem) de cada categoria, criar uma categoria, atualizar as categorias existentes ou deletá-las. Todo esses recursos estão em uma única tela, e são utilizados de forma simples e intuitiva.</p>
<p><img src='http://leandro.w3invent.com.br/wp-content/uploads/tasks-minhas-categorias-cat-default.gif' alt='Como definir uma categoria padrão no Tasks' /></p>
<p>Na opção Gerenciar minhas categoiras, é demonstrado todas as categorias do usuário em questão; possibilitando editar os nomes e posição (ordem) de todas as categorias em uma única vez. Isso facilita a edição múltipla (ou não) das categorias desejadas. Ao lado direito dos campos a um ícone, ilustrado por uma lixeira, que é utilizado para excluir uma categoria.</p>
<p>A ordenação das categorias no <a href="http://tasks.com.br/">Tasks</a> ocorrem através da posição (ordem) e tal ordenação é feita de forma crescente. O que significa dizer que <strong>a categoria com o menor número será sua categoria padrão</strong>.</p>
<p>A categoria padrão é selecionada, e por conseguinte as listas relacionadas a ela, ao acessar sua conta no <a href="http://tasks.com.br/">Tasks</a>.</p>
<p>Já na opção Criar nova categoria, informamos um nome para a categoria a ser criada. A posição (ordem) dessa nova categoria é criada automaticamente, tendo 0 (zero) como valor.</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/como-definir-uma-categoria-padrao-no-tasks/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Tasks acabou de sair do forno</title>
		<link>http://leandrovieira.com/archive/tasks-acabou-de-sair-do-forno</link>
		<comments>http://leandrovieira.com/archive/tasks-acabou-de-sair-do-forno#comments</comments>
		<pubDate>Sun, 06 May 2007 23:02:50 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[tasks]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=137</guid>
		<description><![CDATA[Nesses últimos dias, estive envolvido no desenvolvimento do Tasks e como ele acabou de sair do forno, vim contar a novidade para todos. Tasks é um aplicativo web simples e gratuito que irá ajudá-lo a ser mais produtivo em seu dia-a-dia. O objetivo do tasks é que você tenha Produtividade Pessoal; criando listas de tarefas, [...]]]></description>
			<content:encoded><![CDATA[<p>Nesses últimos dias, estive envolvido no desenvolvimento do <a href="http://tasks.com.br/">Tasks</a> e como ele acabou de sair do forno, vim contar a novidade para todos.</p>
<p><img src='http://leandro.w3invent.com.br/wp-content/uploads/tasks-preview.gif' alt='Preview do Tasks' /></p>
<p><strong><a href="http://tasks.com.br/">Tasks</a> é um aplicativo web simples e gratuito que irá ajudá-lo a ser mais produtivo em seu dia-a-dia. O objetivo do tasks é que você tenha Produtividade Pessoal; criando listas de tarefas, organizando-as por categorias e gerenciando os itens pendentes e concluídos de cada lista.</strong></p>
<p>O <a href="http://tasks.com.br/">Tasks</a> se encontra em versão BETA e há alguns recursos a serem desenvolvidos, durante os próximos dias definirei as prioridades no desenvolvimento.</p>
<p><a href="http://tasks.com.br/account/signup">Crie sua conta no tasks</a> e lembre-se que toda e qualquer sugestão será muito bem-vinda.</p>
<p>Em outros posts falarei com mais detalhes sobre e alguns recursos utilizados para o desenvolvimento do <a href="http://tasks.com.br/">Tasks</a>.</p>
<p><strong>[update]</strong>Lançado o <a href="http://blog.tasks.com.br/">Tasks Blog</a><strong>[/update]</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/tasks-acabou-de-sair-do-forno/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Boas técnicas de SEO garantem 1º lugar no Google, com apenas 2 dias</title>
		<link>http://leandrovieira.com/archive/boas-tecnicas-de-seo-garantem-1%c2%ba-lugar-no-google-com-apenas-2-dias</link>
		<comments>http://leandrovieira.com/archive/boas-tecnicas-de-seo-garantem-1%c2%ba-lugar-no-google-com-apenas-2-dias#comments</comments>
		<pubDate>Fri, 20 Apr 2007 17:08:51 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=136</guid>
		<description><![CDATA[No dia 17 deste mês publiquei o artigo, Função em PHP para exibir datas por extenso, e no dia 19 do mesmo mês, Abril, ele já se posicionou em primeiro lugar no resultado de busca do Google através do termo: php exibir data por extenso e em segundo lugar através do termo: exibir data por [...]]]></description>
			<content:encoded><![CDATA[<p>No dia 17 deste mês publiquei o artigo, <a href="http://leandro.w3invent.com.br/archive/funcao-em-php-para-exibir-datas-por-extenso">Função em PHP para exibir datas por extenso</a>, e no dia 19 do mesmo mês, Abril, ele já se posicionou em primeiro lugar no resultado de busca do Google através do termo: <strong>php exibir data por extenso</strong> e em segundo lugar através do termo: <strong>exibir data por extenso</strong>.</p>
<p>O que significa dizer que em apenas 2 dias, o artigo que exibe a função se posicionou frente aos 11.500 e  56.000, respectivamente. Bom? Ótimo.</p>
<p>Em resumo, técnicas de SEO quando bem aplicadas são garantia de bom posicionamento. Isto é, boas técnicas de SEO garantem 1º lugar no Google, com apenas 2 dias. E o melhor de tudo é que tal posicionamento foi feito ao acaso, não tive a intenção de me posicionar em tal posição e com tais termos. De qualquer forma, fico feliz com o resultado.</p>
<p>Algumas imagens da página de resultado do Google (não levei os demais buscadores em consideração).</p>
<p><img src='http://leandro.w3invent.com.br/wp-content/uploads/result-google-1-php-data-por-extenso.gif' alt='Resultdo da busca por “php exibir data por extenso”' /></p>
<p><img src='http://leandro.w3invent.com.br/wp-content/uploads/result-google-2-data-por-extenso.gif' alt='Resultdo da busca por “exibir data por extenso”' /></p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/boas-tecnicas-de-seo-garantem-1%c2%ba-lugar-no-google-com-apenas-2-dias/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Função em PHP para exibir datas por extenso</title>
		<link>http://leandrovieira.com/archive/funcao-em-php-para-exibir-datas-por-extenso</link>
		<comments>http://leandrovieira.com/archive/funcao-em-php-para-exibir-datas-por-extenso#comments</comments>
		<pubDate>Tue, 17 Apr 2007 18:26:01 +0000</pubDate>
		<dc:creator>leandro</dc:creator>
				<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://leandrovieira.com/?p=133</guid>
		<description><![CDATA[Abaixo há uma função em PHP para exibir datas por extenso no seguinte formato: [Nome do dia da semana], [dia do mês] de [Nome do mês] de [Ano com 4 dígitos]. Um exemplo: Terça-feira, 17 de Abril de 2007. Para utilizá-la proceda assim: echo formata_data_extenso('2007-04-17'); echo formata_data_extenso('2007-04-17 15:20:35'); Essa função é muito útil quando se [...]]]></description>
			<content:encoded><![CDATA[<p>Abaixo há uma <strong>função em PHP para exibir datas por extenso</strong> no seguinte formato: [Nome do dia da semana], [dia do mês] de [Nome do mês] de [Ano com 4 dígitos]. Um exemplo: Terça-feira, 17 de Abril de 2007.</p>
<p>Para utilizá-la proceda assim:</p>
<pre>
echo formata_data_extenso('2007-04-17');
echo formata_data_extenso('2007-04-17 15:20:35');
</pre>
<p>Essa função é muito útil quando se deseja formatar as datas armazenadas em um banco de dados MySQL, por exemplo; em que elas estão armazenadas no formato date, datetime ou timestamp.</p>
<p>Já falhei por aqui sobre <a href="http://leandro.w3invent.com.br/archive/formatar-as-datas-do-mysql-com-sql-ou-php">Formatar as datas do MySQL com SQL ou PHP</a>. O código da função segue abaixo:</p>
<pre>
/**
 * Esta função retorna uma data escrita da seguinte maneira:
 * Exemplo: Terça-feira, 17 de Abril de 2007
 * @author Leandro Vieira Pinho [http://leandro.w3invent.com.br]
 * @param string $strDate data a ser analizada; por exemplo: 2007-04-17 15:10:59
 * @return string
 */
function formata_data_extenso($strDate)
{
	// Array com os dia da semana em português;
	$arrDaysOfWeek = array('Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado');
	// Array com os meses do ano em português;
	$arrMonthsOfYear = array(1 => 'Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro');
	// Descobre o dia da semana
	$intDayOfWeek = date('w',strtotime($strDate));
	// Descobre o dia do mês
	$intDayOfMonth = date('d',strtotime($strDate));
	// Descobre o mês
	$intMonthOfYear = date('n',strtotime($strDate));
	// Descobre o ano
	$intYear = date('Y',strtotime($strDate));
	// Formato a ser retornado
	return $arrDaysOfWeek[$intDayOfWeek] . ', ' . $intDayOfMonth . ' de ' . $arrMonthsOfYear[$intMonthOfYear] . ' de ' . $intYear;
}
</pre>
<p>Comentários para melhoria são bem-vindos.</p>
]]></content:encoded>
			<wfw:commentRss>http://leandrovieira.com/archive/funcao-em-php-para-exibir-datas-por-extenso/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
