<?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>Mike &#38; Etc &#187; PHP</title>
	<atom:link href="http://www.mike.etc.br/categoria/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mike.etc.br</link>
	<description>Entre funções e variáveis, alguns procedimentos básicos de alguém que leva a vida entre as linhas de código.</description>
	<lastBuildDate>Thu, 06 Oct 2011 12:24:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Verificando o status de IPs, maquinas e portas utilizando PHP</title>
		<link>http://www.mike.etc.br/php/verificando-o-status-de-ips-maquinas-e-portas-utilizando-php/</link>
		<comments>http://www.mike.etc.br/php/verificando-o-status-de-ips-maquinas-e-portas-utilizando-php/#comments</comments>
		<pubDate>Wed, 18 May 2011 13:16:16 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.mike.etc.br/?p=288</guid>
		<description><![CDATA[Eu pretendia criar um script de monitoramento para verificar constantemente através do Cron a quantas andam os serviços dos principais domínios e servidores que gerencio. Até pensei em utilizar algum serviço profissional, mas a demanda era pouca e não justificaria o gasto. E outra: Porque contratar um serviço se eu posso criar o meu? Depois [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-289" title="monitorar" src="http://www.mike.etc.br/wp-content/uploads/2011/05/monitorar-264x300.jpg" alt="" width="264" height="300" /></p>
<p>Eu pretendia criar um script de monitoramento para verificar constantemente através do Cron a quantas andam os serviços dos principais domínios e servidores que gerencio. Até pensei em utilizar algum serviço profissional, mas a demanda era pouca e não justificaria o gasto. E outra: Porque contratar um serviço se eu posso criar o meu?</p>
<p>Depois de algumas buscas, acabei caindo na dica do colega <a href="http://www.phpit.com.br/sobre" target="_blank">Rafael Jaques</a>, através do site <a href="http://www.phpit.com.br/artigos/ping-pingando-ip-maquinas-enderecos-e-urls.phpit" target="_blank">PhpIt</a> .</p>
<p>É muito simples, mais do que você imagina.  Encontrei na internet várias aplicações semelhantes a esta:</p>
<pre class="brush:php">&lt;?php
    exec('ping 127.0.0.1', $saida, $retorno);
 
    if (count($saida)) {
        print 'A Máquina está online e os dados do PING foram gravados em $saida. <img src='http://www.mike.etc.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ';
    } else {
        print 'A Máquina NÃO está online ou o host não pode ser encontrado. <img src='http://www.mike.etc.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ';
    }
?&gt;</pre>
<p>Mas nem sempre o comando exec() é permitido. Muitos servidores, visando maior segurança, bloqueiam o uso desse artifício. A solução indicada pelo Rafael é, em vez do exec(), utilizar o fsockopen() para a tarefa:</p>
<pre class="brush:php">&lt;?php
    $conectado = @ fsockopen('127.0.0.1', 135, $numeroDoErro, $stringDoErro, 10); // Este último é o timeout, em segundos
    if ($conectado) {
        print 'A máquina está online! <img src='http://www.mike.etc.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ';
    } else {
        print 'A máquina NÃO está online! <img src='http://www.mike.etc.br/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> ';
    }
?&gt;</pre>
<p>Em vez da porta 135, você poderia utilizar a porta 80 para verificar se o serviço http está funcionando corretamente. Não cheguei a testar com outras portas como FTP, MySQL, Jabber, etc, mas pela lógica deverá funcionar também. De qualquer modo, fica aí a dia.</p>
<p>Agradecimentos ao Rafael, do <a href="http://www.phpit.com.br/" target="_blank">PHPIt</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mike.etc.br/php/verificando-o-status-de-ips-maquinas-e-portas-utilizando-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHPThumb &#8211; Your GD installation does not support JPG image types</title>
		<link>http://www.mike.etc.br/programacao/phpthumb-your-gd-installation-does-not-support-jpg-image-types/</link>
		<comments>http://www.mike.etc.br/programacao/phpthumb-your-gd-installation-does-not-support-jpg-image-types/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 16:22:42 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programação]]></category>

		<guid isPermaLink="false">http://www.mike.etc.br/?p=264</guid>
		<description><![CDATA[Uma solução rápida para quem utiliza a PHPThumb em seus projetos e de uns tempos pra cá vem se deparando com mensagens semelhantes a esta: Fatal error: Uncaught exception 'Exception' with message 'Your GD installation does not support JPG image types' in '(...)\phpthumb\ThumbBase.inc.php:165 Stack trace: #0 (...)\phpthumb\GdThumb.inc.php(1081): ThumbBase-&#62;triggerError('Your GD install...') #1 (...)\phpthumb\GdThumb.inc.php(101): GdThumb-&#62;verifyFormatCompatiblity() #2 (...)\phpthumb\ThumbLib.inc.php(127): [...]]]></description>
			<content:encoded><![CDATA[<p>Uma solução rápida para quem utiliza a <a href="http://phpthumb.gxdlabs.com/">PHPThumb</a> em seus projetos e de uns tempos pra cá vem se deparando com mensagens semelhantes a esta:</p>
<pre>
<pre class="brush:plain">Fatal error: Uncaught exception 'Exception' with message
'Your GD installation does not support JPG image types'
in '(...)\phpthumb\ThumbBase.inc.php:165 Stack trace:
#0 (...)\phpthumb\GdThumb.inc.php(1081): ThumbBase-&gt;triggerError('Your GD install...')
#1 (...)\phpthumb\GdThumb.inc.php(101): GdThumb-&gt;verifyFormatCompatiblity()
#2 (...)\phpthumb\ThumbLib.inc.php(127): GdThumb-&gt;__construct('D:/xampp/htdocs...', Array)
#3 (...)\phpthumb\ThumbBase.inc.php on line 165</pre>
</pre>
<p>A solução é mais simples do que você pode imaginar. Se você tem certeza que sua biblioteca GD está instalada corretamente, tente o seguinte:</p>
<p>No arquivo <strong>GdThumb.lib.php</strong>, procure por volta da<strong> linha 1060 </strong>pelo método <strong>verifyFormatCompatiblity()</strong>. Substitua as linhas:</p>
<pre class="brush:php">case 'JPG':
case 'PNG':
$isCompatible = $gdInfo[$this-&gt;format . ' Support'];
break;</pre>
<p>Pelo código abaixo:</p>
<pre class="brush:php">case 'JPG':
$isCompatible = (isset($gdInfo['JPG Support'])) ? $gdInfo['JPG Support'] : $gdInfo['JPEG Support'];
break;
case 'PNG':
$isCompatible = $gdInfo['PNG Support'];
break;</pre>
<p>O método completo deverá ficar assim:</p>
<pre class="brush:php">	protected function verifyFormatCompatiblity ()
	{
		$isCompatible 	= true;
		$gdInfo			= gd_info();

		switch ($this-&gt;format)
		{

			case 'GIF':
				$isCompatible = $gdInfo['GIF Create Support'];
				break;
      case 'JPG':
        $isCompatible = (isset($gdInfo['JPG Support'])) ? $gdInfo['JPG Support'] : $gdInfo['JPEG Support'];
        break;
      case 'PNG':
        $isCompatible = $gdInfo['PNG Support'];
        break;
      default:
				$isCompatible = false;
		}

		if (!$isCompatible)
		{
			$this-&gt;triggerError('Your GD installation does not support ' . $this-&gt;format . ' image types');
		}
	}</pre>
<p>Salve o arquivo e teste.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mike.etc.br/programacao/phpthumb-your-gd-installation-does-not-support-jpg-image-types/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resolvendo os problemas com datas no PHP + MySQL</title>
		<link>http://www.mike.etc.br/php/resolvendo-os-problemas-com-datas-no-php-mysql/</link>
		<comments>http://www.mike.etc.br/php/resolvendo-os-problemas-com-datas-no-php-mysql/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 02:52:21 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[datas]]></category>

		<guid isPermaLink="false">http://www.mike.etc.br/?p=143</guid>
		<description><![CDATA[Muitos iniciantes, e até mesmo alguns programadores experientes tem algum problema quanto o assunto é o armazenamento de datas em banco de dados MySQL, utilizando o PHP. Isso porque o MySQL armazena os dados no campo classificado com Date de uma maneira não muito condizente com aquilo que estamos acostumados. Vamos pegar como exemplo o [...]]]></description>
			<content:encoded><![CDATA[<p>Muitos iniciantes, e até mesmo alguns programadores experientes tem algum problema quanto o assunto é o armazenamento de datas em banco de dados MySQL, utilizando o PHP. Isso porque o MySQL armazena os dados no campo classificado com Date de uma maneira não muito condizente com aquilo que estamos acostumados. Vamos pegar como exemplo o dia 06 de Novembro de 2009 (aniversário da Isabella! Te amo, minha princesa!). Nós podemos facilmente abreviá-la para o formato 06/10/2009.</p>
<p>Imagine um formulário onde essa data é informada nesse formato. Ao ser feio o INSERT no MySQL o resultado, ela seria armazenada como um valor nulo, ou na melhor das hipóteses em algo totalmente diferente daquilo que você pretendia. Enquanto nós costumamos utilizar datas abreviadas usando o formato DIA/MÊS/ANO, o MySQL o faz utilizando o formato ANO-MES-DIA. Qualquer coisa que venha fora desses padrões, será completamente ignorado pelo MySQL.</p>
<p>Já vi alguns tentando contornar esse problema tratando a data no PHP antes de enviá-la para ser salva no MySQL. Esse tratamento consiste basicamente em inverter as posições dos algarismos e trocar as barras por hífens. Algo mais ou menos assim:</p>
<pre class="brush:php">&lt;?php

$data="17/08/2009";
$arr=explode('/',$data);
$data=$arr[2].'-'.$arr[1].'-'.$arr[0];

?&gt;</pre>
<p>O exemplo acima até que funciona, apesar do POG&#8230; Outra variação desse método é a utilização de Regex ou até mesmo as funções de tratamento de strings que o PHP fornece.</p>
<p>Eu, pessoalmente, sou adepto do que costumo chamar de &#8220;trabalho preguiçoso&#8221;. Não entenda &#8220;preguiçoso&#8221; como algo mal feito, ou feito com má vontade; mas sim como a busca de uma solução mais rápida, clara e objetiva, e que consuma o menor tempo possível. <img src='http://www.mike.etc.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Então porque você não deixa o MySQL fazer esse trabalho pra você? Em vez de você quebrar a cabeça com a criação de códigos, funções, classes e loops, porque não utilizar as funções de tratamento de Data do MySQL?</p>
<p>Basta fazer o seguinte:</p>
<pre class="brush:sql">INSERT INTO nomedatabela (seucampodate) VALUES (STR_TO_DATE('06/11/2009', '%d/%m/%Y'));</pre>
<p>Note o uso da função STR_TO_DATE(). Ela exige basicamente dois parâmetros:</p>
<p>- O primeiro é a string contendo a data, seja em qual formato for.</p>
<p>- O segundo parâmetro é o segredo para a mágica da coisa. Ele recebe a máscara que o MySQL deve utilizar para interpretar a data. Nesse caso, %d significa o dia (dois dígitos), %m o mês (dois dígitos) e %Y o ano (com quatro dígitos).</p>
<p>A conversão da data abreviada como estamos acostumados, para o formato do MySQL será feita automaticamente.</p>
<p>Confira também outras funções para o tratamento de datas no MySQL acessando a documentação do MySQL, <a href="http://dev.mysql.com/doc/refman/4.1/pt/date-and-time-functions.html" target="_blank">clicando aqui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mike.etc.br/php/resolvendo-os-problemas-com-datas-no-php-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10 dicas para programar melhor em PHP</title>
		<link>http://www.mike.etc.br/sem-categoria/10-dicas-para-programar-melhor-em-php/</link>
		<comments>http://www.mike.etc.br/sem-categoria/10-dicas-para-programar-melhor-em-php/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 13:25:47 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sem categoria]]></category>

		<guid isPermaLink="false">http://www.diariodeumprogramador.com.br/?p=40</guid>
		<description><![CDATA[Esta manhã eu estava navegando pela internet quando encontrei este artigo interessante. Estas dicas estão no no site www.vivaolinux.com.br, e foram publicadas por Cândido Tominaga. 1 &#8211; Usar echo ao invés de print. 2 &#8211; Usar argumentos no echo ao invés de concatenar. echo 'Meu programa ',$nome,' funciona perfeitamente.' 3 &#8211; Prefira sempre usar &#8216; [...]]]></description>
			<content:encoded><![CDATA[<p>Esta manhã eu estava navegando pela internet quando encontrei este artigo interessante. Estas dicas estão no no site www.vivaolinux.com.br, e foram publicadas por Cândido Tominaga.</p>
<p><strong>1 &#8211; Usar echo ao invés de print.<br />
2 &#8211; Usar argumentos no echo ao invés de concatenar.</strong></p>
<pre class="brush:php">echo 'Meu programa ',$nome,' funciona perfeitamente.'</pre>
<p><strong>3 &#8211; Prefira sempre usar &#8216; ao invés de &#8220;, pois quando se usa aspas simples o php trata como uma string literal, ou seja, não vai interpretá-la. Portanto, se não precisar, não use aspas duplas.</strong></p>
<pre class="brush:php">$registros = 100;
echo 'Total de $registros'; // resultará em Total de $registros
echo "Total de $registros"; // resultará em Total de 10
</pre>
<p><strong>4 &#8211; Use require ao invés de require_once.</strong></p>
<p><strong>5 &#8211; Evite de usar @ antes das variáveis ou outros lugares para suprimir as mensagens de erros.</strong></p>
<p><strong>6 &#8211; Em array, $linha['id'] é até 7 vezes mais rápido do que $linha[id].</strong></p>
<p><strong>7 &#8211; Evite de usar for($i=0; $i &lt; count($_linhas); $i++. Use:</strong></p>
<pre class="brush:php">$total = count($_linhas);
for($i=0; $i &lt; $total; $i++)
</pre>
<p>Pois o for sempre irá executar a função count, pesando na velocidade do seu programa.</p>
<p><strong>8 &#8211; Habilite o mod_deflate do apache, você poderá ganhar consumo de banda, ou seja, ele vai comprimir os dados para ser enviado para o cliente (navegador). Dependendo da página, poderá ter uma compressão perto dos 90%. Assim sendo, economia de banda, e carregamento mais rápido para o cliente.</strong></p>
<p><strong>9 &#8211; Prefira sempre usar HTML se não tiver nada de dinâmico na sua página, pois scripts PHP podem ser de 2-10 vezes mais lento.</strong></p>
<p><strong>10 &#8211; Com uso de banco de dados, também prefira por usar cache de objetos ou resultados, se está tendo muitas consultas no Banco de Dados, pode ser que uma hora o seu banco de dados não suporte muitas requisições simultâneas, então com cache poderá diminuir em muito estas requisições e assim melhorando a velocidade de respostas. Procure por memcache, este é bom para isso.</strong></p>
<p><a href="http://www.vivaolinux.com.br/dicas/verDica.php?codigo=10476">Link para o post original</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mike.etc.br/sem-categoria/10-dicas-para-programar-melhor-em-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Economizando nos caracteres</title>
		<link>http://www.mike.etc.br/php/economizando-nos-caracteres/</link>
		<comments>http://www.mike.etc.br/php/economizando-nos-caracteres/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 11:21:00 +0000</pubDate>
		<dc:creator>Mike</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.diariodeumprogramador.com.br/?p=31</guid>
		<description><![CDATA[Cada vez mais me convenço de que a programação é uma arte! E como cada artista tem seu próprio estilo, cara programador é capaz de desenvolver seu próprio método de organizar seu código fonte. É muito comum em alguns sistemas, dependendo do estudo de caso, testar a existência de uma determinada variável antes de exibí-la [...]]]></description>
			<content:encoded><![CDATA[<p>Cada vez mais me convenço de que a programação é uma arte! E como cada artista tem seu próprio estilo, cara programador é capaz de desenvolver seu próprio método de organizar seu código fonte.</p>
<p>É muito comum em alguns sistemas, dependendo do estudo de caso, testar a existência de uma determinada variável antes de exibí-la na tela. E cada programador tem sua forma favorita de fazer isso em PHP. Seja com if em sintaxe clássica:</p>
<pre class="brush:php">if(isset($menu)){
print($menu);
}</pre>
<p>Ou uma forma mais resumida, em casos simples:</p>
<pre class="brush:php">if(isset($menu)) print($menu);</pre>
<p>Outro método muito utilizado utilizado é o if ternário:</p>
<pre class="brush:php">echo isset($menu) ? $menu : '';</pre>
<p>Hoje pela manhã, recebemos no grupo de discussão sobre o <a href="http://www.codeigniter.com/" target="_blank">CodeIgniter</a>, uma sugestão do nosso amigo Edinho era basicamente substituir esta sequência de aninhamentos por um código simples, de apenas uma linha:</p>
<pre class="brush:php">isset($menu) AND print($menu);</pre>
<p>Em teoria, o PHP só executa o segunto teste (após o AND) se o primeiro for verdadeiro. Ou seja, a variável $menu só será exibida se o valor retornado por isset() for true, caso contrário o print() nem será executado.</p>
<p>Um outro exemplo:</p>
<pre class="brush:php">$a=1;
true OR $a=2;
echo $a; //imprimirá 1</pre>
<p>O resultado de $a será 1, já que a primeira condição é verdadeira. Caso fosse falsa, o código após o operador OR seria executado, alterando assim o valor de $a para 2.</p>
<p>Um terceiro caso:</p>
<pre class="brush:php">!empty($valor) OR $valor=3;</pre>
<p>Em palavras, a variável $valor não pode ser vazia &#8216;ou&#8217; será atribuido 3 a ele.</p>
<p>Esse método de programação é muito utilizado em Ruby, e também incentivado no framework Kohana. Mas o pessoal do Zend Framework pregam um estilo mais tradicional de programação, onde são utilizados &lt;?php echo $var; ?&gt; em vez do simpático &lt;?= $var; ?&gt;.</p>
<p>Talvez esse possa não ser o mais eficaz dos métodos; talvez você prefira utilizar métodos de verificação mais simples de ler; mas em uma coisa temos que concordar: programadores são verdadeiros artistas! <img src='http://www.mike.etc.br/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mike.etc.br/php/economizando-nos-caracteres/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

