<?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 Garcia &#187; PHP</title>
	<atom:link href="http://www.leandrogarcia.com/blog/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leandrogarcia.com</link>
	<description></description>
	<lastBuildDate>Wed, 11 Jan 2012 13:31:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Operador ternário</title>
		<link>http://www.leandrogarcia.com/blog/operador-ternario/</link>
		<comments>http://www.leandrogarcia.com/blog/operador-ternario/#comments</comments>
		<pubDate>Thu, 10 Feb 2011 16:34:20 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[dicas]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[operador ternário]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=416</guid>
		<description><![CDATA[O Operador ternário está presente na maioria das linguagens de programação e serve para agrupar condicionais em uma única linha, economizando código e na minha opinião deixado o código mais clean.
A sintaxe é simples (condição) ? verdadeira : falsa
Em PHP uma sintaxe normal
Agora com o Operador ternário
ou 
Em javascript é a mesma coisa.
Vejam:
Tradicional
Operador ternário
]]></description>
			<content:encoded><![CDATA[<p>O Operador ternário está presente na maioria das linguagens de programação e serve para agrupar condicionais em uma única linha, economizando código e na minha opinião deixado o código mais clean.</p>
<p>A sintaxe é simples <strong>(condição) ? verdadeira : falsa</strong></p>
<p>Em PHP uma sintaxe normal</p>
<pre class="brush: php; title: ; notranslate">
$direcao = &quot;d&quot;;
if($direcao == &quot;d&quot;){
	$sentido = &quot;direita&quot;;
}else{
	$sentido = &quot;esquerda&quot;;
}

print $sentido;
</pre>
<p>Agora com o Operador ternário</p>
<pre class="brush: php; title: ; notranslate">
$direcao = &quot;d&quot;;
$sentido = ($direcao == &quot;d&quot;) ? &quot;direita&quot; : &quot;esquerda&quot;;
print $sentido;
</pre>
<p>ou </p>
<pre class="brush: php; title: ; notranslate">
$direcao = &quot;d&quot;;
print ($direcao == &quot;d&quot;) ? &quot;direita&quot; : &quot;esquerda&quot;;
</pre>
<p>Em javascript é a mesma coisa.</p>
<p>Vejam:</p>
<p>Tradicional</p>
<pre class="brush: jscript; title: ; notranslate">

var direcao = &quot;d&quot;;
if(direcao == &quot;d&quot;){
	sentido = &quot;direita&quot;;
}else{
	sentido = &quot;esquerda&quot;;
}

document.write(sentido);
</pre>
<p>Operador ternário</p>
<pre class="brush: jscript; title: ; notranslate">
var direcao = &quot;d&quot;;
var sentido = (direcao == &quot;d&quot;) ? &quot;direita&quot; : &quot;esquerda&quot;;
document.write(sentido);
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/operador-ternario/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Memcached</title>
		<link>http://www.leandrogarcia.com/blog/memcached/</link>
		<comments>http://www.leandrogarcia.com/blog/memcached/#comments</comments>
		<pubDate>Wed, 21 Jul 2010 17:23:15 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[cache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[cahe]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[memcached]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/?p=344</guid>
		<description><![CDATA[Eventualmente nos deparamos com alguma aplicação web, ou até mesmo site, que tenha seu conetúdo armazenado em uma base de dados, seja ela um banco de dados ou um xml ou até mesmo JSON. isso é muito interessante no ponto de vista de dinamismo, pois você pode ter um sistema de administração, atualizar de maneira [...]]]></description>
			<content:encoded><![CDATA[<p>Eventualmente nos deparamos com alguma aplicação web, ou até mesmo site, que tenha seu conetúdo armazenado em uma base de dados, seja ela um banco de dados ou um xml ou até mesmo JSON. isso é muito interessante no ponto de vista de dinamismo, pois você pode ter um sistema de administração, atualizar de maneira mais rápida, porém isso pode acarretar um grande problema se sua aplicação(site) tiver muito acesso.  Isso pode criar um gargalo enorme na transferência dos dados e até mais travar seu servidor, uma vez que cada requisição de página é uma reuisição para o arquivo ou uma requisição para o banco de dados.</p>
<p>Para se evitar esse tipo de gargalo, é interessante utilizar algum mecanismo de cache para os dados. Um dos mais utilizados e mais fáceis de se usar (pelo menos em PHP) é o memcached.</p>
<p>O ruim desse mecanismo é que o servidor tem que disponibilizá-lo, não é uma coisa que você memo possa fazer em sua aplicação. Tirando isso, é muito bom.</p>
<p>Basicamente, você armazena os dados na memória do servidor o que porna a leitura muito mais rápida.</p>
<p>O memcached, permite que você armazene qualquer tipo de texto desde que em um array, ex. você não pode armazenar somente uma string, tem que armazenar um array que tenha essa string.</p>
<p>adicionar = &#8220;string&#8221;; <strong><span style="color: #ff0000;">X errado</span></strong></p>
<p>adicionar = $array[0] = &#8220;string&#8221;;  <span style="color: #339966;"><strong>Correto</strong></span></p>
<p>No memcached você armazena em um local (chave) que você define, o conteúdo e por quanto tempo você quer que o conteúdo seja armazenado.</p>
<p>Como um banco de dados, você deve informar ao memcached o endereço de armazenamento, por padrão é localhost:11211, mas pode variar caso o rsponsável pelo servidor determine.</p>
<p>bom vamos a um exemplo</p>
<pre class="brush: php; title: ; notranslate">
$mem = new Memcache;
$mem-&gt;addServer(&quot;localhost:11211&quot;);
$mem-&gt;set(&quot;chave01&quot;, $array, TRUE, 60);
</pre>
<p>No exemplo acima, eu estou armazenando na chave01 meu array por 60 segundos.</p>
<p>Agora para pegar esse conteúdo, você deve usar a função get. Vamos ao exemplo.</p>
<pre class="brush: php; title: ; notranslate">
$mem = new Memcache;
$mem-&amp;gt;addServer(&quot;localhost:11211&quot;);
$resp = $mem-&gt;get(&quot;chave01&quot;);
print_r($resp);
</pre>
<p>Nesse exemplo eu estou pegando o conteúdo da chave01 e armazenando na variável $resp.</p>
<p>Aqui abaixo, um exemplo de uma função que procura no memcached uma determinada query e se não acha busca no banco de dados, armazena no memcached e responde o conteúdo.</p>
<pre class="brush: php; title: ; notranslate">
function mysql_queryCache($consulta, $tempo = 3600) {
     $chave = md5($consulta);  //Gera uma chave à partir de um hash formado pela query

     // Conecta no Memcached
     $mem = new Memcache;
     $mem-&gt;addServer(&quot;localhost:11211&quot;)

     // Tenta pegar o item em cache
     $query = $mem-&gt;get($chave);

     if ($query === false) {
          $query = mysql_query($consulta);
          if(mysql_num_rows($query) &gt; 0){
               $itens_array = array();

               if(mysql_num_rows($query)){
                    while($item = mysql_fetch_array($query)){
                         $itens_array[] = $item;
                    }
               }
          }else{
               $itens_array[0] = &quot;null&quot;;
               $itens_array[1] = &quot;null&quot;;
          }
          $mem-&gt;set($chave, $itens_array, TRUE, $tempo);

     } else {
          $itens_array = $query;
     }

     return $itens_array;
}

print_r(mysql_queryCache(&quot;SELECT * FROM clientes&quot;, 60) );
</pre>
<p>essa função procura no memcached a query &#8216;SELECT * FROM clientes&#8217;, se não tiver faz a busca no banco de dados, armazena no memcached e retorna o conteúdo. Se a query retornar vazia,  responde null.</p>
<p>Basicamente é isso, espero que seja tão útil para voc~es como foi para mim.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/memcached/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com datas em PHP</title>
		<link>http://www.leandrogarcia.com/blog/trabalhando-com-datas-em-php/</link>
		<comments>http://www.leandrogarcia.com/blog/trabalhando-com-datas-em-php/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 11:46:29 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[dicas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[date]]></category>
		<category><![CDATA[dica]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=82</guid>
		<description><![CDATA[É apenas uma dica, que par muitos já deve ser velha, mas tenho certeza de que para muitos é uma novidade.
Estou planejando escrever este post com esta dica faz tempo, mas não havia me decidido pela forma com que eu escreveria. Acabei me decidino por uma maneira simples e  direta.
Durante muito tempo, sempre que eu [...]]]></description>
			<content:encoded><![CDATA[<p>É apenas uma dica, que par muitos já deve ser velha, mas tenho certeza de que para muitos é uma novidade.</p>
<p>Estou planejando escrever este post com esta dica faz tempo, mas não havia me decidido pela forma com que eu escreveria. Acabei me decidino por uma maneira simples e  direta.</p>
<p>Durante muito tempo, sempre que eu precisava armazenar uma data na base de dados o fazia pela maneira em que nós, brasileiros, escrevemos, ou seja, 22/11/1984 (meu aniversário aliás, se quiser me dar um presente fiquem à vontade. rs), mas percebi que quando precisava comparar datas era um Deus nos acuda.</p>
<p>Lendo na Internet descobri que o mais interessante seria usar o formato Ano-mês-dia, ou seja meu aniversário ficaria 1984-11-22, uma maneira mais fácil de comparar datas e ordenar seus SELECTS.</p>
<p>Para escreve a data de hoje, ao invés de usar:</p>
<pre class="brush: php; title: ; notranslate">
date('d/m/Y');
</pre>
<p>use</p>
<pre class="brush: php; title: ; notranslate">
date('Y-m-d');
</pre>
<p>Você vai se surpreender como isso vai te ajudar.</p>
<p>Ah, aproveitando, se você precisar armazenar a data de atualização, use o formato datetime.</p>
<pre class="brush: php; title: ; notranslate">
date('Y-m-d H:i:s');//1984-11-22 22:05:15
</pre>
<p>Vai aqui uma funçãozinha que eu fiz pra exibir a data no formato brasileiro à partir do formato acima.</p>
<pre class="brush: php; title: ; notranslate">
function FormataData($date){

$dt = explode('&quot;-&quot;,$date');

      return &quot;{$dt[3]}/$dt[2]}/$dt[1]}&quot;;

}
</pre>
<p>Fica a dica.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/trabalhando-com-datas-em-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exportando dados para EXCELL com PHP</title>
		<link>http://www.leandrogarcia.com/blog/exportando-dados-para-excell-com-php/</link>
		<comments>http://www.leandrogarcia.com/blog/exportando-dados-para-excell-com-php/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 14:29:36 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Excell]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[exportar]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=110</guid>
		<description><![CDATA[Um dia desses, me surgiu um problema ao elaborar um sistema. O Cliente queria que o sistema exportasse os dados de determinado relatório para Excell.
Em ASP, eu sabia fazer, porém, estava usando PHP&#8230; O que fazer?
Pesquisei na internet e entendi o funcionamento. Percebi que é bem simples.
1º O que é uma planilha?
É em principio uma [...]]]></description>
			<content:encoded><![CDATA[<p>Um dia desses, me surgiu um problema ao elaborar um sistema. O Cliente queria que o sistema exportasse os dados de determinado relatório para Excell.</p>
<p>Em ASP, eu sabia fazer, porém, estava usando PHP&#8230; O que fazer?</p>
<p>Pesquisei na internet e entendi o funcionamento. Percebi que é bem simples.</p>
<p><strong>1º O que é uma planilha?</strong></p>
<p>É em principio uma tabela.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;table&gt;
	&lt;tr&gt;
		&lt;td&gt;Linha 1, Coluna 1&lt;/td&gt;
		&lt;td&gt;Linha 1, Coluna 2&lt;/td&gt;
		&lt;td&gt;Linha 1, Coluna 2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Linha 2, Coluna 1&lt;/td&gt;
		&lt;td&gt;Linha 2, Coluna 2&lt;/td&gt;
		&lt;td&gt;Linha 2, Coluna 2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Linha 3, Coluna 1&lt;/td&gt;
		&lt;td&gt;Linha 3, Coluna 2&lt;/td&gt;
		&lt;td&gt;Linha 3, Coluna 2&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
</pre>
<p><strong>Ta, fiz a tabela, e agora&#8230; Como eu exporto&#8230;</strong></p>
<p>Simples, você exporta através de de função header do PHP.</p>
<p>Muitos que estão lendo devem conhecer a função header apenas como uma maneira de redirecionar uma página, porém ela vai muito além disso&#8230;</p>
<p>Veja no nosso caso, como é:</p>
<pre class="brush: php; title: ; notranslate">
header(&quot;Content-type: application/vnd.ms-excel&quot;);
header(&quot;Content-type: application/force-download&quot;);
header(&quot;Content-Disposition: attachment; filename=relatorio.xls&quot;);
header(&quot;Pragma: no-cache&quot;);
</pre>
<p>Utilizando a tabela gerada e as funções de Header no mesmo arquivo, será gerado um excell com a sua estrutura de tabela.</p>
<p>Veja o Código Completo</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?php
	header(&quot;Content-type: application/vnd.ms-excel&quot;);
	header(&quot;Content-type: application/force-download&quot;);
	header(&quot;Content-Disposition: attachment; filename=relatorio.xls&quot;);
	header(&quot;Pragma: no-cache&quot;);
?&gt;

&lt;table&gt;
	&lt;tr&gt;
		&lt;td&gt;&lt;strong&gt;Linha 1, Coluna 1&lt;/strong&gt;&lt;/td&gt;
		&lt;td&gt;Linha 1, Coluna 2&lt;/td&gt;
		&lt;td&gt;Linha 1, Coluna 2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Linha 2, Coluna 1&lt;/td&gt;
		&lt;td&gt;Linha 2, Coluna 2&lt;/td&gt;
		&lt;td&gt;Linha 2, Coluna 2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;Linha 3, Coluna 1&lt;/td&gt;
		&lt;td&gt;Linha 3, Coluna 2&lt;/td&gt;
		&lt;td&gt;Linha 3, Coluna 2&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
</pre>
<p>Utilizando este código, será gerado um arquivo chamado &#8220;relatorio.xls&#8221; com os dados da tabela.</p>
<p><img src="http://www.leandrogarcia.com/wp-content/uploads/2009/06/gerarexcell-300x125.gif" alt="gerarexcell" title="gerarexcell" width="300" height="125" class="alignnone size-medium wp-image-120" /></p>
<p>Se você analisar o código acima, você verá que eu formatei a primeira celula da primeira linha, deixando-a em negrito. Você pode formatar da maneira como você necessitar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/exportando-dados-para-excell-com-php/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PHP: Trabalhando com horários &#8211; Fuso</title>
		<link>http://www.leandrogarcia.com/blog/php-trabalhando-com-horarios-fuso/</link>
		<comments>http://www.leandrogarcia.com/blog/php-trabalhando-com-horarios-fuso/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 19:56:53 +0000</pubDate>
		<dc:creator>leandro garcia</dc:creator>
				<category><![CDATA[dicas]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[fuso horário]]></category>
		<category><![CDATA[trabalhando com horas]]></category>

		<guid isPermaLink="false">http://www.leandrogarcia.com/blog/?p=69</guid>
		<description><![CDATA[Recentemente, peguei um projeto para desenvolver, onde eu deveria trabalhar com horário. Até ai tudo bem, no entanto eu teria que trabalhar com o horário do servidor, aí veio o problema.
Costumo utilizar um servidor que fica localizado nos Estado Unidos e o Fuso horário diferente. O que fazer?
Uma vez que você aprende é fácil, mas [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente, peguei um projeto para desenvolver, onde eu deveria trabalhar com horário. Até ai tudo bem, no entanto eu teria que trabalhar com o horário do servidor, aí veio o problema.</p>
<p>Costumo utilizar um servidor que fica localizado nos Estado Unidos e o Fuso horário diferente. O que fazer?</p>
<p>Uma vez que você aprende é fácil, mas demorei um pouquinho a descobrir.</p>
<p>O PHP tem uma função interna que faz isso pra a gente, só devemos setar o local pra o qual desejamos setar o fuso.</p>
<p>A função é <strong>date_default_timezone_set()</strong></p>
<p>Como usá-la?</p>
<p>Basta colocá-la no inicio da página em que você vai trabalhar com horário.</p>
<pre class="brush: php; title: ; notranslate">
date_default_timezone_set('Brazil/East');&lt;!--–– São Paulo ––--&gt;
?&gt;
</pre>
<p>Mas Garcia, estou trabalhando para uma empresa que fica em Portugal o que fazer?</p>
<p>Simples, altere as propriedades. <a href="http://www.php.net/manual/pt_BR/timezones.php" target="_blank"> Aqui tem a lista de todos os fusos.</a></p>
<p><a href="http://tutoriais.leandrogarcia.com/date_default_time_zone/date_default_timezone_set.php" target="_blank">Veja em funcionamento</a></p>
<p><a href="http://tutoriais.leandrogarcia.com/date_default_time_zone/date_default_timezone_set.zip">Download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leandrogarcia.com/blog/php-trabalhando-com-horarios-fuso/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

