<?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>Phaneronsoft</title>
	<atom:link href="http://www.phaneronsoft.com/phaneronsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phaneronsoft.com/phaneronsoft</link>
	<description>Desenvolvimento Web</description>
	<lastBuildDate>Thu, 18 Mar 2010 18:01:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adicionar HTML no ZEND Form de maneira rapida e limpa.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 17:13:27 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=445</guid>
		<description><![CDATA[Criei uma solução para adicionar HTML no form do Zend é simples e eficiente
Basta criar um classe no Library com o nome Htmlform.php e adicionar o código

&#60;?php
class Htmlform extends Zend_Form_Element_Xhtml {
   public $helper = &#039;formNote&#039;;
}
?&#62;

Agora no Formulário você irá chamar ela usando.

       $html = new Htmlform(&#039;nome_do_elemento&#039;);
  [...]]]></description>
			<content:encoded><![CDATA[<p>Criei uma solução para adicionar HTML no form do Zend é simples e eficiente<br />
Basta criar um classe no Library com o nome Htmlform.php e adicionar o código</p>
<pre class="brush: php">
&lt;?php
class Htmlform extends Zend_Form_Element_Xhtml {
   public $helper = &#039;formNote&#039;;
}
?&gt;
</pre>
<p>Agora no Formulário você irá chamar ela usando.</p>
<pre class="brush: php">
       $html = new Htmlform(&#039;nome_do_elemento&#039;);
       $html-&gt;setValue(&#039;&lt;strong&gt;teste&lt;/strong&gt;&#039;);
       $this-&gt;addElement($html);
</pre>
<p>Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sistema e manual para Calcular Frete SEDEX, e-SEDEX e PAC dos Correios  (versão 1.1)</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/02/08/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/02/08/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:01:33 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[CEP]]></category>
		<category><![CDATA[correios]]></category>
		<category><![CDATA[Frete]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[PAC]]></category>
		<category><![CDATA[Sedex]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=427</guid>
		<description><![CDATA[Desde semana passada o antigo webservice dos correios parou de funcionar com PAC.
Foi feita a correção do código e agora o PAC esta funcionando novamente.
Sistema para Calcular Frete 1.1
Documentação para utilizar o webservice dos Correios para efetuar o calculo de forma personalizada.
SCPP_Manual_Implementacao_Calculo_Remoto_de_Precos_e_Prazos
Abaixo segue o código para manipular os dados do webservice usando o PHP.
Segue o [...]]]></description>
			<content:encoded><![CDATA[<p>Desde semana passada o antigo webservice dos correios parou de funcionar com PAC.<br />
Foi feita a correção do código e agora o PAC esta funcionando novamente.</p>
<p><a title="Sistema para calcular Frete" href="http://www.phaneronsoft.com/phaneronsoft/2009/05/28/sistema-para-calcular-frete-sedex-e-pac-a-partir-de-cep-informado/" target="_self">Sistema para Calcular Frete 1.1</a></p>
<p>Documentação para utilizar o webservice dos Correios para efetuar o calculo de forma personalizada.</p>
<p><a href="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2010/02/SCPP_Manual_Implementacao_Calculo_Remoto_de_Precos_e_Prazos.pdf">SCPP_Manual_Implementacao_Calculo_Remoto_de_Precos_e_Prazos</a></p>
<p>Abaixo segue o código para manipular os dados do webservice usando o PHP.</p>
<p><a title="Webservice Correios" href="http://www.phaneronsoft.com/exemplos/webservice_correio/correio.php" target="_blank">Segue o exemplo do código abaixo funcionando.</a></p>
<pre class="brush: php">
&lt;?php
/**
* Faz consulta no webservice dos correios e gera array dos valores.
* @copyright  Phaneronsoft
* @author Marcelo Korjenioski - faleconosco@phaneronsoft.com
* @see http://www.phaneronsoft.com
* @filesource correios.php
* @version 1.0
*/

// PESO: Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
define(&#039;PESO&#039;,0.300);
// COMPRIMENTO: comprimento do volume em centímetros - somente número de 16 a 60
define(&#039;COMPRIMENTO&#039;,30);
// ALTURA: altura do volume em centímetros - somente número de 2 a 60
define(&#039;ALTURA&#039;,15);
// LARGURA: largura do volume em centimetros - somente número de 5 a 60
define(&#039;LARGURA&#039;,20);
// CODIGO_SERVICO: É possivel fazer mais de uma consulta ao mesmo tempo, basta separar os códigos por virgula.
// Neste caso PAC 41106 e SEDEX 40010
define(&#039;CODIGO_SERVICO&#039;,&#039;41106,40010&#039;);
// CEP_ORIGEM: seu CEP com 8 dígitos - somente números
define(&#039;CEP_ORIGEM&#039;,&#039;81010210&#039;);
// CEP_DESTINO: CEP do seu cliente com 8 dígitos - somente números
define(&#039;CEP_DESTINO&#039;,&#039;60245965&#039;);

// Crio um objeto para manipular o XML.
$doc = new DomDocument;
// Carrega o arquivo XML com um arquivo DOMDocument
$doc-&gt;Load(&quot;http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&amp;amp;nCdServico=&quot; . CODIGO_SERVICO . &quot;&amp;amp;nVlPeso=&quot; . PESO . &quot;&amp;amp;sCepOrigem=&quot; . CEP_ORIGEM . &quot;&amp;amp;sCepDestino=&quot; . CEP_DESTINO . &quot;&amp;amp;nCdFormato=1&amp;amp;nVlComprimento=&quot; . COMPRIMENTO . &quot;&amp;amp;nVlAltura=&quot; . ALTURA . &quot;&amp;amp;nVlLargura=&quot; . LARGURA);
// Defino o nome do elemento pai (root).
$root = $doc-&gt;getElementsByTagName(&#039;cServico&#039;);

// Carrega o arquivo XML com um arquivo DOMDocument
$correios = &quot;http://shopping.correios.com.br/wbm/shopping/script/CalcPrecoPrazo.aspx?StrRetorno=xml&amp;amp;nCdServico=&quot; . CODIGO_SERVICO . &quot;&amp;amp;nVlPeso=&quot; . PESO . &quot;&amp;amp;sCepOrigem=&quot; . CEP_ORIGEM . &quot;&amp;amp;sCepDestino=&quot; . CEP_DESTINO . &quot;&amp;amp;nCdFormato=1&amp;amp;nVlComprimento=&quot; . COMPRIMENTO . &quot;&amp;amp;nVlAltura=&quot; . ALTURA . &quot;&amp;amp;nVlLargura=&quot; . LARGURA;
// Defino o nome do elemento pai (root).
$root = $doc-&gt;getElementsByTagName(&#039;cServico&#039;);

// Defino o nome dos elementos filhos no arquivo XML que eu desejo.
$children = array(&#039;Valor&#039;,&#039;PrazoEntrega&#039;);

// Faço um loop para pegar todos os elementos pai (root) encontrados.
$valor = array();
for ($i=0; $i &lt; $root-&gt;length; $i++) {
// Pega o valor do atributo do elemento pai  (root).
    $id =  $root-&gt;item($i)-&gt;getElementsByTagName(&#039;Codigo&#039;)-&gt;item(0)-&gt;nodeValue;

// Busca por elementos filhos (child) definidos no array
    foreach ($children as $child) {
        $valor[$id][$child] = $root-&gt;item($i)-&gt;getElementsByTagName($child)-&gt;item(0)-&gt;nodeValue;
    }
}
echo &#039;&lt;pre&gt;&#039;;
var_dump($valor);
</pre>
<p>Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/02/08/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shell Script (Linux)</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/11/25/shell-script-linux/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/11/25/shell-script-linux/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 16:16:10 +0000</pubDate>
		<dc:creator>J. C.</dc:creator>
				<category><![CDATA[Sites]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=420</guid>
		<description><![CDATA[——————————
#!/bin/bash
echo “Fala ae Mundo!”
——————————
Está ai o seu primeiro Shell Script, vou explicar de forma mais detalhada:
Abra seu terminal de comando e nele vamos navegar até a pasta /tmp (caso não tenha a pasta tmp, você pode criar ela no diretório /home, usando o comando mkdir tmp
Agora que estamos na pasta /home/tmp, vamos criar um arquivo [...]]]></description>
			<content:encoded><![CDATA[<p>——————————</p>
<p>#!/bin/bash</p>
<p>echo “Fala ae Mundo!”</p>
<p>——————————</p>
<p>Está ai o seu primeiro Shell Script, vou explicar de forma mais detalhada:</p>
<p>Abra seu terminal de comando e nele vamos navegar até a pasta <em>/tmp</em> (caso não tenha a pasta tmp, você pode criar ela no diretório <em>/home</em>, usando o comando <em><strong>mkdir tmp</strong></em></p>
<p>Agora que estamos na pasta <em>/home/tmp</em>, vamos criar um arquivo chamado: <strong>1shell.sh</strong>, para criar um arquivo vazio basta usar o comando <em><strong>touch</strong></em> “nomedoarquivoeextensão” (sem as aspas).</p>
<p>Utilize o comando <em><strong>ls</strong></em> para exibir os arquivos que estão na pasta <em>/home/tmp</em> para certificar-se que seu <strong>1shell.sh</strong> foi criado corretamente.</p>
<p>Vamos para a edição deste novo shellscript, mas antes uma pequena comparação para facilitar a vida de todos, o que é um shellscript se não um <strong>.bat</strong> do linux <img src='http://www.phaneronsoft.com/phaneronsoft/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> , ok voltando a edição: abra seu arquivo shell com o editor de texto vi, para isso digite: <em><strong>vi 1shell.sh</strong></em>.</p>
<p>Dentro do editor aperte a tecla i para incluir seu texto e digite como está la em cima no começo do post.</p>
<p>A linha <em><strong>#!/bin/bash</strong></em> é o que indica para o linux que seu arquivo é um shellscript. Depois de digitar o texto, precione ESC para parar de incluir e digite <em><strong>:wq</strong></em>, esse ultimo comando é salvar e sair. Certo antes de executar seu shell você deve dar as permissões necessarias para ele rodar como um executavel.</p>
<p>Para isso você deve usar o comando <em><strong>chmod +x “nomedoarquivo”</strong></em>. Fazendo isso você vai alterar a permissão dele para que possa ser executavel.</p>
<p>Agora vamos ao teste <img src='http://www.phaneronsoft.com/phaneronsoft/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  digite: <strong><em>./1shell.sh</em></strong> e veja o resultado na tela!!!</p>
<blockquote><p>root@intranet:/home# mkdir tmp</p>
<p>root@intranet:/home# cd tmp</p>
<p>root@intranet:/home/tmp# ls</p>
<p>root@intranet:/home/tmp# touch 1shell.sh</p>
<p>root@intranet:/home/tmp# ls</p>
<p>1shell.sh</p>
<p>root@intranet:/home/tmp# vi 1shell.sh</p>
<p>reading 1shell.sh</p>
<p>root@intranet:/home/tmp# chmod +x 1shell.sh</p>
<p>root@intranet:/home/tmp# ./1shell.sh</p>
<p>Fala ae Mundo!</p>
<p>root@intranet:/home/tmp#</p></blockquote>
<div></div>
<p>Logo vou explicar mais comandos e com eles você podera incrementar seu shell, e até mesmo programar nele!</p>
<p>Abraços e até a proxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/11/25/shell-script-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Descobrir ID de elemento através de uma Class usando JQuery</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 12:42:29 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Sites]]></category>
		<category><![CDATA[Descobrir]]></category>
		<category><![CDATA[Listas]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=411</guid>
		<description><![CDATA[Descobrir ID de elemento através de uma Class usando JQuery é o tema de hoje.
Eu não sou o tipo do programador que fica se preocupando com a quantidade de linhas por arquivo.
Gosto mesmo é de criar um código simples e de fácil manutenção. Esta semana estava querendo colocar
um efeito “slide” em algumas listas porem não [...]]]></description>
			<content:encoded><![CDATA[<p>Descobrir ID de elemento através de uma Class usando JQuery é o tema de hoje.<br />
Eu não sou o tipo do programador que fica se preocupando com a quantidade de linhas por arquivo.<br />
Gosto mesmo é de criar um código simples e de fácil manutenção. Esta semana estava querendo colocar<br />
um efeito “slide” em algumas listas porem não queria criar uma função para cada lista. Então resolvi<br />
criar uma classe comum para elas e atribuir IDs para os botões e para as listas. Desta maneira foi simples<br />
resolver meu problema pois posso identificar os IDs dos elementos através da classe.<br />
Segue o código abaixo para explicar melhor a situação.</p>
<p>Segue o<a href="http://www.phaneronsoft.com/exemplos/jquery/"> exemplo funcionando</a></p>
<pre class="brush: php">

&lt;head&gt;
&lt;title&gt;Descobrir id de elemento usando uma classe com JQuery&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
ul {list-style:none;}
* {margin:0;padding:0;border:0px;}
html {height:100%;}
.agrupa_programacao {float:left;display:inline;width:970px;margin-top:30px;}
.divisao_programacao {float:left;display:inline;width:230px;margin-right:10px;}
.lista_programacao,.lista_programacao2 {float:left;display:inline;width:228px;margin-top:5px;background:#fff;border:1px solid #bbb;}
.lista_programacao2 {margin-top:0px;border-top:0px}
.tit_programacao, .tit_programacao2, .tit_programacao3 {float:left;display:inline;width:198px;height:20px;background:#acbcc0 url(../img/seta.jpg) no-repeat 9px 16px;padding:12px 0 12px 30px;text-align:left;font:14px Verdana, Arial, Helvetica, sans-serif;font-weight:bold;color:#fff;border-bottom:1px solid #fff;}
.tit_programacao2 {color:#133c8b;background:#f4f1f1;}
.tit_programacao3 {background:#d9eff3 url(../img/seta2.gif) no-repeat 9px 7px;padding:5px 0 5px 30px;color:#133c8b;font:bold 12px Verdana, Arial, Helvetica, sans-serif;}
h3.tit_programacao3{border-left:1px solid #BBBBBB;border-right:1px  solid #BBBBBB;cursor:pointer;}
.txt_programacao, .txt_programacao2, .txt_programacao3 {float:left;display:inline;width:198px;padding:10px 15px 10px 15px;background:#f4f1f1;font:11px Verdana, Arial, Helvetica, sans-serif;color:#5e5e5e;border-bottom:1px solid #fff;}
.txt_programacao2 {background:#d7d7d7;}
.txt_programacao3 {background:#fff;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;
&lt;h3 id=&quot;frutas&quot;&gt;Frutas&lt;/h3&gt;
&lt;ul id=&quot;frutas_lista&quot;&gt;
&lt;li id=&quot;1&quot;&gt;Abacaxi&lt;/li&gt;
&lt;li id=&quot;2&quot;&gt;Pera&lt;/li&gt;
&lt;li id=&quot;3&quot;&gt;Maça&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;verduras&quot;&gt;Legumes&lt;/h3&gt;
&lt;ul id=&quot;verduras_lista&quot;&gt;
&lt;li id=&quot;1&quot;&gt;Alface&lt;/li&gt;
&lt;li id=&quot;2&quot;&gt;Couve&lt;/li&gt;
&lt;li id=&quot;3&quot;&gt;Cenoura&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){ // Inicio o script apenas quando toda a pagina estiver carregada.
// Atribuo a função onclick em todos os elementos com a classe informada
$(&quot;.tit_programacao3&quot;).click(function () {
//Pego o ID do elemento.
var id = $(this).attr(&#039;id&#039;);
// Como defini os ids para o titulo e lista, apenas faço uma
// concatenação para identificar a lista para receber a ação.
if ($(&quot;#&quot; + id + &quot;_lista&quot;).is(&quot;:hidden&quot;)) {
$(&quot;#&quot; + id + &quot;_lista&quot;).slideDown(&quot;normal&quot;);
} else {
$(&quot;#&quot; + id + &quot;_lista&quot;).slideUp(&quot;normal&quot;);
}
});
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Associando a classe com id é possível reduzir a quantidade de código facilitando a manutenção e agilizando o desenvolvimento.</p>
<p>Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apre­sen­ta­dos.<br />
É isso pes­soal uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exemplo Básico de AJAX com JQUERY.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/10/28/exemplo-basico-de-ajax-com-jquery/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/10/28/exemplo-basico-de-ajax-com-jquery/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 16:33:42 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[iniciante]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=403</guid>
		<description><![CDATA[Hoje estava conversando com um amigo que começou a estudar AJAX
para fazer uma entrevista de emprego para programador Jr e que pediam conhecimentos básicos de PHP, AJAX e JQuery.
Perguntei para ele o que você entende por AJAX?
“É um bagulho que pega informações do lado servidor sem
precisar recarregar a página.”
A resposta esta certa e o conceito [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estava conversando com um amigo que começou a estudar AJAX<br />
para fazer uma entrevista de emprego para programador Jr e que pediam conhecimentos básicos de PHP, AJAX e JQuery.</p>
<p><em>Perguntei para ele o que você entende por AJAX?</em><br />
<em><strong>“É um bagulho que pega informações do lado servidor sem<br />
precisar recarregar a página.”</strong></em></p>
<p>A resposta esta certa e o conceito é este.</p>
<p>Então hoje resolvi criar um post sobre o que é o tal de AJAXem um<br />
exemplo pratico e simples de entender que mostrei para meu amigo.</p>
<p>Vamos usar o JQuery para fazer a conexão AJAX.<br />
No exemplo vamos pegar o conteúdo de uma pagina “texto.html” e adicionar<br />
o conteúdo na página “index.html” em uma tag span.</p>
<p>Vamos criar uma página <em>index.html</em> com o código abaixo.</p>
<pre class="brush: php">

&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;EXEMPLO BASICO DO USO DO AJAX COM JQUERY&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot;&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;input type=&quot;button&quot; onclick=&quot;ajax();&quot; value=&quot;Pegar texto&quot; name=&quot;Pegar texto&quot; /&gt;
&lt;br /&gt;
&lt;span id=&quot;conteudo_ajax&quot;&gt;&lt;/span&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function ajax () {
// Caso queira limpar o valor do elemento antes de adicionar remova o comentario abaixo.
//$(&quot;#conteudo_ajax&quot;).empty();
jQuery.ajax({
type: &quot;get&quot;, // Defino o método de envio POST / GET
url: &#039;texto.html&#039;, // Informo a URL que será pesquisada.
success: function(html){
$(&quot;#conteudo_ajax&quot;).append(html); // Adiciono o valor dentro do elemento.
}
});
}
&lt;/script&gt;
</pre>
<p>Agora crie uma página  <em>texto.html</em> com o texto para pesquisa</p>
<pre class="brush: php">

Texto que foi pego usando AJAX.
</pre>
<p>O código é simples mas já dá uma idéia de como funciona o AJAX para quem esta começando a estudar.</p>
<p>Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apre­sen­ta­dos.<br />
É isso pes­soal uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/10/28/exemplo-basico-de-ajax-com-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Alterar idioma do NetBeans para Inglês.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/10/26/alterar-idioma-do-netbeans-para-ingles/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/10/26/alterar-idioma-do-netbeans-para-ingles/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 15:38:17 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Idioma]]></category>
		<category><![CDATA[NetBeans]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=401</guid>
		<description><![CDATA[Sempre quando vou baixar o Netbeans ele detecta o idioma do meu Windows e coloca em português mas baixando a versão em inglês.
Para alterar o idioma do Netbeans para inglês.
Vá em “C:\Arquivos de programas\NetBeans 6.8 Beta\etc”.
Abra o arquivo “netbeans.conf” com um editor de texto.
Na linha de comando netbeans_default_options adicione
”-J-Duser.language=en –J-Duser.region=US”.
Salve o arquivo e abra o [...]]]></description>
			<content:encoded><![CDATA[<p>Sempre quando vou baixar o Netbeans ele detecta o idioma do meu Windows e coloca em português mas baixando a versão em inglês.<br />
Para alterar o idioma do Netbeans para inglês.<br />
Vá em <strong>“C:\Arquivos de programas\NetBeans 6.8 Beta\etc”</strong>.<br />
Abra o arquivo <strong>“netbeans.conf” </strong>com um editor de texto.<br />
Na linha de comando netbeans_default_options adicione<br />
<strong>”-J-Duser.language=en –J-Duser.region=US”</strong>.<br />
Salve o arquivo e abra o Netbeans que agora estará em inglês para facilitar sua vida.</p>
<p>Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apre­sen­ta­dos.<br />
É isso pes­soal uma ótima semana e até o pró­ximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/10/26/alterar-idioma-do-netbeans-para-ingles/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Como efetuar a instalação do LiveZilla usando MySQL.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/10/16/como-efetuar-a-instalacao-do-livezilla-usando-mysql/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/10/16/como-efetuar-a-instalacao-do-livezilla-usando-mysql/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 14:59:18 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Chat]]></category>
		<category><![CDATA[LiveZilla]]></category>
		<category><![CDATA[Suporte]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=382</guid>
		<description><![CDATA[
Assim como hoje não é mais necessário você desenvolver um Blog por causa do Wordpress acredito que criar um Chat de suporte para seu site também esta deixando de ser graças ao LiveZilla.
Neste tutorial vou mostrar como instalar o LiveZilla usando MySQL, PHP e WinXP.
O processo é rápido é vai deixar seu chefe e cliente [...]]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { so-language: zxx } --></p>
<p style="margin-bottom: 0cm;">Assim como hoje não é mais necessário você desenvolver um Blog por causa do Wordpress acredito que criar um Chat de suporte para seu site também esta deixando de ser graças ao LiveZilla.</p>
<p style="margin-bottom: 0cm;">Neste tutorial vou mostrar como instalar o LiveZilla usando MySQL, PHP e WinXP.<br />
O processo é rápido é vai deixar seu chefe e cliente contentes.<br />
O primeiro passo é baixar o LiveZilla aqui (<a href="http://livehelp.livezilla.net/downloads/en/">http://livehelp.livezilla.net/downloads/en/</a>).<br />
Tenha o  MySql e PHP instalado recomendo usar  o Wamp para efetuar o teste (http://www.wampserver.com/en/).</p>
<p style="margin-bottom: 0cm;">Para instalar não tem segredo é next, next finish.<br />
Depois de instalar ele vai criar dois atalhos na área de trabalho o LiveZilla Client e o LiveZilla Server Admin.</p>
<p style="margin-bottom: 0cm;">Vamos abrir o LiveZilla Server Admin para configurar nosso Chat.<br />
Selecione “Create new LiveZilla Server” e clique no botão Next.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-383 aligncenter" title="LiveZilla Server Admin" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/opcoes_admin.PNG" alt="LiveZilla Server Admin" width="457" height="589" /></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Vai surgir uma tela para você criar uma conta Admin no sistema.<br />
Preencha os campos como no exemplo e clique no botão Next.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-385 aligncenter" title="criar_admin" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/criar_admin.PNG" alt="criar_admin" width="458" height="366" /></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Na próxima tela mostra um formulário para criar o primeiro grupo de suporte para o Chat. Depois é possível criar mais grupos de suporte.<br />
Preencha os campos como no exemplo e clique no botão Next.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-386 aligncenter" title="criar_grupo_suporte" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/criar_grupo_suporte.PNG" alt="criar_grupo_suporte" width="458" height="366" /></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Agora chegou a hora de gerar os arquivo PHP do Chat.<br />
Você tem a opção de enviar via FTP ou extrair localmente.<br />
Eu no exemplo uso o Wamp então enviei direto para meu dir www/livezilla.<br />
Escolha sua opção e clique em Next.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-388 aligncenter" title="exportar_arquivos_chat" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/exportar_arquivos_chat.PNG" alt="exportar_arquivos_chat" width="458" height="366" /></p>
<p style="margin-bottom: 0cm;">Apos enviar o arquivo surge a tela para testar a instalação do LiveZilla.<br />
Basta informar o nome da conexão com o server e sua URL.<br />
Clique no botão Server Test se estiver ok</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-391 aligncenter" title="testar_chat" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/testar_chat.PNG" alt="testar_chat" width="458" height="366" /></p>
<p style="margin-bottom: 0cm;">Agora clique no botão test e digite o nome de usuário e senha que foi criado para o Admin e clique no botão Ok para iniciar o teste.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-390 aligncenter" title="server_test" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/server_test.PNG" alt="server_test" width="350" height="361" /></p>
<p style="margin-bottom: 0cm;">
<p style="margin-bottom: 0cm;">Se o teste ocorreu com sucesso clique no botão Serverpage e você verá esta pagina.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-389 aligncenter" title="pagina_livezilla" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/pagina_livezilla.PNG" alt="pagina_livezilla" width="428" height="427" /></p>
<p style="margin-bottom: 0cm;">Feche a janela de Test e clique em Next para configurar o MySQL.</p>
<p style="margin-bottom: 0cm;">Preencha os campos como no exemplo e clique no botão Create Tables.<br />
Caso tenha algum ao criar as tabelas clique no link Show SQL Dump e execute direto no seu BD.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-387 aligncenter" title="data_management" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/data_management.PNG" alt="data_management" width="458" height="366" /></p>
<p style="margin-bottom: 0cm;">Se a conexão estiver correta clique em Next e para finalizar a configuração.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-394 aligncenter" title="wizard_completd" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/wizard_completd.PNG" alt="wizard_completd" width="458" height="366" /></p>
<p style="margin-bottom: 0cm;">Agora vamos clicar no atalho LiveZilla Client para iniciar o atendimento do Chat.<br />
Entre com o nome de usuário e senha criados para o Admin e seu Chat já esta funcionando.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-384 aligncenter" title="client_login" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/client_login.PNG" alt="client_login" width="407" height="323" /></p>
<p style="margin-bottom: 0cm;">Abra o navegador e digite a URL do ser LiveZilla no meu caso http://localhost/livezilla/<br />
Clique no link Start Demo Chat.<br />
Preencha os campos como no exemplo e clique em iniciar Chat.</p>
<p style="margin-bottom: 0cm; text-align: center;"><img class="size-full wp-image-392 aligncenter" title="usario_login_chat" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/usario_login_chat.PNG" alt="usario_login_chat" width="430" height="497" /></p>
<p style="margin-bottom: 0cm;">Agora no LiveZilla Client vai surgir uma solicitação para iniciar o Chat.<br />
Clique em Accept Request e iniciar.</p>
<p style="text-align: center;"><img class="size-medium wp-image-393 aligncenter" title="usario_login_chat_request" src="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2009/10/usario_login_chat_request-300x235.PNG" alt="usario_login_chat_request" width="300" height="235" /></p>
<p style="margin-bottom: 0cm;">A instalação esta feita agora basta explorar o LiveZilla pois existem muitas opções para facilitar o trabalho do pessoal do suporte.</p>
<p style="margin-bottom: 0cm;">Em um post futuro irei comentar estas funções.<br />
Caso tenha alguma duvida ou suges­tão deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.<br />
É isso pes­soal uma ótimo final de semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/10/16/como-efetuar-a-instalacao-do-livezilla-usando-mysql/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Sistema para rastrear entregas nos Correios.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/10/14/sistema-para-rastrear-entregas-nos-correios/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/10/14/sistema-para-rastrear-entregas-nos-correios/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 20:13:49 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[correios]]></category>
		<category><![CDATA[entregas]]></category>
		<category><![CDATA[rastrear]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=374</guid>
		<description><![CDATA[Olá pessoal depois de um tempo sem postar surgiu uma necessidade de rastrear minhas encomendas nos  Correios.
Como não gosto de ficar apertando F5 no site dos Correios que vive com problemas resolvi fazer a consulta via Ajax. O codigo é simples e aproveitei a ideia do sistema para calcular frete.
Segue exemplo funcionando.
&#60;/p&#62;
&#60;?php
if($_POST) {
header(&#34;Content-Type: text/html; charset=ISO-8859-1&#34;);
$p_cod_lis [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal depois de um tempo sem postar surgiu uma necessidade de rastrear minhas encomendas nos  Correios.</p>
<p>Como não gosto de ficar apertando F5 no site dos Correios que vive com problemas resolvi fazer a consulta via Ajax. O codigo é simples e aproveitei a ideia do <a href="http://www.phaneronsoft.com/phaneronsoft/2009/05/28/sistema-para-calcular-frete-sedex-e-pac-a-partir-de-cep-informado/" target="_blank">sistema para calcular frete</a>.</p>
<p>Segue <a href="http://www.phaneronsoft.com/exemplos/rastrear/rastrear.php">exemplo funcionando</a>.</p>
<pre class="brush: php">&lt;/p&gt;
&lt;?php
if($_POST) {
header(&quot;Content-Type: text/html; charset=ISO-8859-1&quot;);
$p_cod_lis = $_POST[&#039;P_COD_LIS&#039;];
if($p_cod_lis == &#039;&#039;) {
echo &#039;&lt;center&gt;Código não informado&lt;/center&gt;&#039;;
}
$url = &quot;http://websro.correios.com.br/sro_bin/txect01$.Inexistente?P_LINGUA=001&amp;P_TIPO=002&amp;P_COD_LIS=$p_cod_lis&quot;;

$conecurl = @fopen(&quot;$url&quot;,&quot;r&quot;) or die (&#039;&lt;center&gt;erro na conexão&lt;/center&gt;&#039;);
while(!feof($conecurl)) {
$lin .= fgets($conecurl,4096);
}
fclose($conecurl);

$lin = strtolower($lin);

$rest = substr($lin,0);
$nprimetable = strpos($rest,&#039;&lt;table &#039;);
$fechatable = strpos($rest,&#039;&lt;hr &#039;);
$quantopula = $fechatable - $nprimetable ;
$conteudo = substr($lin, $nprimetable ,$quantopula);

function get_anchor($html)
{
$er = &quot;/&lt;td.*?&gt;.*?&lt;\/td&gt;/&quot;;
preg_match_all($er,$html,$links);
$link = $links[0];
return $link;
}

function get_label($url)
{
$label = str_replace(&quot;&lt;/td&gt;&quot;,&quot;&quot;,preg_replace(&quot;/^&lt;td.*?&gt;/&quot;,&quot;&quot;,$url));
return $label;
}

echo $conteudo;

} else {
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot; /&gt;
&lt;link href=&quot;http://demo.phaneronsoft.com/img/favicon.ico&quot; rel=&quot;shortcut icon&quot; type=&quot;image/x-icon&quot; /&gt;
&lt;title&gt;Sistema para rastrear entregas no correio. | Phaneronsoft&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;
* {
font-family:&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:12px;
font-style:normal;
font-variant:normal;
font-weight:normal;
line-height:normal;
}

body {
background:#FFFFFF none repeat scroll 0 0;
height:100%;
margin:0;
margin-top:20px;
width:100%;
}

div#wrapper {
margin:auto;
position:relative;
width:390px;
z-index:0;
}

.select {
text-transform:uppercase;
width:99%;
border:1px solid #B6B6B6;
display:block;
}

.formSearch fieldset {
border:1px solid #CCCCCC;
margin:0;
padding:0 10px;
}

label {
display:block;
/*float:left;*/
margin-right:4px;
padding-bottom:5px !important;
}

legend {
color:#1E398D;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
padding:10px 5px;
}

.button {
background:#F5EED3;
border:1px solid #CCCCCC;
color:#666666;
cursor:pointer;
font-size:12px;
font-weight:bold;
letter-spacing:1px;
margin:10px 0 0;
overflow:visible;
text-transform:uppercase;
width:150px;
}

.formMain .inline {
margin:15px 0 0 !important;
}

.text,  .select,  .textarea, .password {
border:1px solid #B6B6B6;
display:block;
text-transform:uppercase;
}

fieldset span.nameField {
color:#666666;
text-transform:uppercase;
}

h3 {
border-bottom:1px solid #F58220;
margin:0;
padding:0;
}

h3 span {
-x-system-font:none;
color:#1E398D;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
}

#value {
-x-system-font:none;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
text-transform:capitalize;
}

#value table {
margin:0;
padding:0;
border:0;
}

#rastrear {
padding-top:30px;
}

#loading {
display:none;
color:#9B0000;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
text-transform:capitalize;
}

&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;wrapper&quot;&gt;
&lt;h3&gt;
&lt;span&gt;Rastrear pedido&lt;/span&gt;
&lt;/h3&gt;

&lt;form method=&quot;post&quot; action=&quot;&quot; name=&quot;rastreamentohome&quot; onsubmit=&quot;submitForm(this); return false;&quot;&gt;
&lt;fieldset&gt;
&lt;legend&gt;Identificador do objeto:&lt;/legend&gt;
&lt;label for=&quot;P_COD_LIS&quot;&gt;
&lt;textarea cols=&quot;48&quot; id=&quot;P_COD_LIS&quot; rows=&quot;3&quot; name=&quot;P_COD_LIS&quot;&gt;&lt;/textarea&gt;
&lt;/label&gt;
&lt;label for=&quot;pesquisar&quot;&gt;
&lt;input type=&quot;submit&quot; id=&quot;pesquisar&quot; name=&quot;pesquisar&quot; value=&quot;pesquisar&quot; tabindex=&quot;3&quot; /&gt;
&lt;/label&gt;
&lt;/fieldset&gt;
&lt;/form&gt;

&lt;span id=&quot;value&quot;&gt;&lt;/span&gt;
&lt;span id=&#039;loading&#039;&gt;Pesquisando...&lt;/span&gt;
&lt;/div&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function submitForm(form) {
/*
usa metodo request() da classe Form da prototype, que serializa os campos
do formulario e submete (por POST como default) para a action especificada no form
*/
function mostrarLoading(){
$(&#039;loading&#039;).style.display = &#039;block&#039;;
$(&#039;value&#039;).innerHTML = &#039; &#039;;
}

form.request({
onLoading:mostrarLoading,
onComplete: function(transport){
/*
se o retorno for diferente de -1, entende-se que nao houve problemas, entao apaga-se
os campos do formulario usando o metodo reset() da classe Form
*/
if(transport.responseText !=-1)  {
$(&#039;loading&#039;).style.display = &#039;none&#039;;
$(&#039;value&#039;).innerHTML = transport.responseText;
} else {
form.reset();
$(&#039;loading&#039;).style.display = &#039;none&#039;;
$(&#039;value&#039;).innerHTML = &#039;Erro ao consultar&#039;;
}
}

});
return false;
}
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
&lt;?php } ?&gt;</pre>
<p>Caso tenha alguma duvida ou suges­tão deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
<p>É isso pes­soal uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/10/14/sistema-para-rastrear-entregas-nos-correios/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Criar função no PostgreSQL GROUP_CONCAT equivalente ao GROUP_CONCAT MySQL</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/09/17/criar-funcao-no-postgresql-group_concat-equivalente-ao-group_concat-mysql/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/09/17/criar-funcao-no-postgresql-group_concat-equivalente-ao-group_concat-mysql/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 12:38:40 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PostgreSQL]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=370</guid>
		<description><![CDATA[Hoje estava precisando concatenar dados de um campo e descobri que no PostgreSQL não existe uma função equivalente ao group_concat do MySQL.
Exemplo do MySQL

select GROUP_CONCAT(nome ORDER BY nome DESC SEPARATOR &#039;,&#039;) as nomes from usuarios

Então procurando na web encontrei esta função.
MS SQL to Postgre SQL


create aggregate array_accum (
sfunc = array_append,
basetype = anyelement,
stype = anyarray,
initcond = [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje estava precisando concatenar dados de um campo e descobri que no PostgreSQL não existe uma função equivalente ao group_concat do MySQL.</p>
<p>Exemplo do MySQL</p>
<pre class="brush: sql">
select GROUP_CONCAT(nome ORDER BY nome DESC SEPARATOR &#039;,&#039;) as nomes from usuarios
</pre>
<p>Então procurando na web encontrei esta função.</p>
<p><a href="http://mssql-to-postgresql.blogspot.com/2007/12/cool-groupconcat.html">MS SQL to Postgre SQL</a></p>
<pre class="brush: sql">

create aggregate array_accum (
sfunc = array_append,
basetype = anyelement,
stype = anyarray,
initcond = &#039;{}&#039;
);

CREATE OR REPLACE FUNCTION _group_concat(text, text)
RETURNS text AS $$
SELECT CASE
WHEN $2 IS NULL THEN $1
WHEN $1 IS NULL THEN $2
ELSE $1 operator(pg_catalog.||) &#039;,&#039; operator(pg_catalog.||) $2
END
$$ IMMUTABLE LANGUAGE SQL;

CREATE AGGREGATE group_concat (
BASETYPE = text,
SFUNC = _group_concat,
STYPE = text
);
</pre>
<p>Para executar a função basta usar.</p>
<pre class="brush: sql">
select group_concat(distinct nome) as nomes from usuarios
</pre>
<p>Caso tenha alguma duvida ou suges­tão deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
<p>É isso pes­soal uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/09/17/criar-funcao-no-postgresql-group_concat-equivalente-ao-group_concat-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Função para Converter de CSV para Array no PHP</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/09/10/funcao-para-converter-de-csv-para-array-no-php/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/09/10/funcao-para-converter-de-csv-para-array-no-php/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 20:31:47 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[CSV]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=365</guid>
		<description><![CDATA[Olá pessoal este semana esta com dificuldades para importar um arquivo CSV pegando o nome das colunas ou setando elas em um array para adaptar o nome das colunas com o mesmo nome dos meus fields no BD então com um pouco de pesquisa e paciência criei esta função.
O uso é simples basta indicar o [...]]]></description>
			<content:encoded><![CDATA[<p>Olá pessoal este semana esta com dificuldades para importar um arquivo CSV pegando o nome das colunas ou setando elas em um array para adaptar o nome das colunas com o mesmo nome dos meus fields no BD então com um pouco de pesquisa e paciência criei esta função.</p>
<p>O uso é simples basta indicar o caminho do arquivo e o tipo de separador que o CSV usa. O padrão é vírgula porem no Office usa ponto e vírgula.</p>
<p>Crie um arquivo com o nome produtos.csv e insira o código abaixo.</p>
<pre class="brush: php">

codigo;nome;preco;quantidade
1;lapis;1.20;2
2;borracha;0.50;10
3;caneta;1.50;20
</pre>
<p>Agora crie um arquivo converte.php e insira o código.</p>
<pre class="brush: php">

&lt;?php
$caminho = &quot;produtos.csv&quot;;

$campos = array(&#039;codigo&#039;,&#039;nome&#039;,&#039;preco&#039;,&#039;quantidade&lt;/code&gt;&lt;/span&gt;&lt;/span&gt;&#039;);

$cvs_array = CVStoArray($caminho,$campos);
echo &#039;&lt;pre&gt;&#039;;
var_dump($cvs_array);

function CVStoArray($arquivo,Array $campos=null,$separador=&#039;;&#039;) {
$ponteiro = fopen($arquivo, &quot;r&quot;); // Abro o arquivo para somente leitura
$colunas_nome = fgetcsv($ponteiro, 1000, $separador); // Pego a primeira linha onde tem os nomes dos campos
$numero_colunas = count($colunas_nome);// Vejo quantas colunas o CSV tem para comparar com os $campos.

if(count($campos) != $numero_colunas)
$campos = $colunas_nome;

// executo um looping até pegar todos os registros.

while($valor = fgetcsv($ponteiro, 1000, $separador)) {
$valores[] = $valor;
}
fclose($ponteiro); // fecho a conexão.
$x = 0;
$y = 0;

// Aqui eu pego as colunas e linhas e vou adicionando os valores no $array.

foreach($valores as $i) {
foreach($campos as $z) { // looping para pegar as colunas de acordo com o nome dos campos informados.
$array[$x][$z] = $i[$y];
$y++; // incremento o valor para ir para a próxima coluna.
}
$y = 0; // zero o ponteiro das colunas para ir para a próxima linha.
$x++; // incremento o valor da linha para o próximo registro
}
return $array;
}

?&gt;
</pre>
<p>Caso tenha alguma duvida ou suges­tão deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
<p>É isso pes­soal uma ótima semana e até o pró­ximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/09/10/funcao-para-converter-de-csv-para-array-no-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
