<?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 &#187; CSV</title>
	<atom:link href="http://www.phaneronsoft.com/phaneronsoft/category/csv/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phaneronsoft.com/phaneronsoft</link>
	<description>Desenvolvimento Web</description>
	<lastBuildDate>Sat, 28 Aug 2010 00:11:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<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 [...]]]></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>
		<item>
		<title>Converter XML para arquivo CSV — XML2CSV</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/05/28/converter-xml-para-arquivo-csv-xml2csv/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/05/28/converter-xml-para-arquivo-csv-xml2csv/#comments</comments>
		<pubDate>Thu, 28 May 2009 14:21:24 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[CSV]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=188</guid>
		<description><![CDATA[Atendendo a solicitação de um visitante do blog criei este tutorial com os princípios básicos para converter um arquivo XML em CSV. Crie um arquivo com o nome produtos.xml e insira o código abaixo. &#60;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34; standalone=&#34;no&#34;?&#62; &#60;catalogo&#62; &#60;produto id=&#039;p1&#039;&#62; &#60;nome&#62;Caderno&#60;/nome&#62; &#60;preco&#62;2,00&#60;/preco&#62; &#60;quantidade&#62;100&#60;/quantidade&#62; &#60;/produto&#62; &#60;produto id=&#039;p2&#039;&#62; &#60;nome&#62;Caneta&#60;/nome&#62; &#60;preco&#62;1,00&#60;/preco&#62; &#60;quantidade&#62;200&#60;/quantidade&#62; &#60;/produto&#62; &#60;produto id=&#039;p3&#039;&#62; &#60;nome&#62;Lapis&#60;/nome&#62; &#60;preco&#62;0,50&#60;/preco&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Atendendo a solicitação de um visitante do blog criei este tutorial com os princípios básicos para converter um arquivo XML em CSV.</p>
<p>Crie um arquivo com o nome produtos.xml e insira o código abaixo.</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;
&lt;catalogo&gt;
&lt;produto id=&#039;p1&#039;&gt;
&lt;nome&gt;Caderno&lt;/nome&gt;
&lt;preco&gt;2,00&lt;/preco&gt;
&lt;quantidade&gt;100&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p2&#039;&gt;
&lt;nome&gt;Caneta&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;200&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p3&#039;&gt;
&lt;nome&gt;Lapis&lt;/nome&gt;
&lt;preco&gt;0,50&lt;/preco&gt;
&lt;quantidade&gt;50&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p4&#039;&gt;
&lt;nome&gt;Livro Matematica&lt;/nome&gt;
&lt;preco&gt;11,00&lt;/preco&gt;
&lt;quantidade&gt;10&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;produto id=&#039;p5&#039;&gt;
&lt;nome&gt;Apontador&lt;/nome&gt;
&lt;preco&gt;1,00&lt;/preco&gt;
&lt;quantidade&gt;20&lt;/quantidade&gt;
&lt;/produto&gt;
&lt;/catalogo&gt;
</pre>
<p>É necessário criar um diretório com o nome csv e dar permissão de leitura e escrita antes de executar o código.</p>
<p>Crie um arquivo com nome xml2csv.php e coloque o código abaixo.</p>
<pre class="brush: php">
&lt;?php

$doc = new DomDocument;
// Carrega o arquivo XML com um arquivo DOMDocument
$doc-&gt;Load(&#039;produtos.xml&#039;);
// Defino o nome do elemento pai (root).
$root = $doc-&gt;getElementsByTagName(&#039;produto&#039;);
// Defino o nome dos elementos filhos no arquivo XML que eu desejo.
$children = array(&#039;nome&#039;,&#039;preco&#039;,&#039;quantidade&#039;);
$cvs = NULL;
// Crio o cabeçalho do arquivo CSV com o nome de todos os campos.
$cvs .= &quot;codigo,nome,preco,quantidade&quot;;
// Quebra de linha do arquivo CSV.
$cvs .= &quot;\n&quot;;

// Faço um loop para pegar todos os elementos pai (root) encontrados.
for ($i=0; $i &lt; $root-&gt;length; $i++) {

// Pega o valor do atributo do elemento pai  (root).
$id =  $root-&gt;item($i)-&gt;getAttribute(&#039;id&#039;);
// Irei dar um escape em todos os valores usando aspas duplas.
$cvs .= &#039;&quot;&#039; . $id . &#039;&quot;,&#039;;
// Busca por elementos filhos (child) definidos no array
$valor = array();
foreach ($children as $child) {
$valor[] = &#039;&quot;&#039; . $root-&gt;item($i)-&gt;getElementsByTagName($child)-&gt;item(0)-&gt;nodeValue . &#039;&quot;&#039;;
}
// Uso o implode para criar uma string com os valores separados por vírgula.
$cvs .= implode(&#039;,&#039;, $valor);
// Quebra de linha do arquivo CSV.
$cvs .=&quot;\n&quot;;
}

// getcwd() retorna o diretório atual.
$caminho = getcwd(). &#039;/csv/&#039;;
$data = date(&#039;d_m_y_H_i_s&#039;);
$file_path = $caminho.$data.&#039;_lista.csv&#039;;

// Verifique se vc tem permissão de leitura e escrita neste diretorio
if(fwrite($file=fopen($file_path,&#039;w+&#039;),$cvs)) {
fclose($file);
echo &quot;Arquivo gravado com sucesso!&quot;;
} else {
echo &quot;Erro ao abrir arquivo!&quot;;
}

?&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/05/28/converter-xml-para-arquivo-csv-xml2csv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como criar um arquivo CSV e gravar em um diretório.</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/03/25/como-criar-um-arquivo-csv-e-gravar-em-um-diretorio/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/03/25/como-criar-um-arquivo-csv-e-gravar-em-um-diretorio/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 21:17:30 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[CSV]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[apache]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=143</guid>
		<description><![CDATA[As funções para manipular arquivos no PHP são fopen(), fwrite() e fclose(). fopen() — Abre o arquivo fwrite() — Escreve no arquivo fclose() — Fecha o arquivo Parametros para leitura e escrita em um arquivo usando fopen(); ‘r’ — Abre somente para leitura e coloca o ponteiro no começo do arquivo. ‘r+’ — Abre para [...]]]></description>
			<content:encoded><![CDATA[<p>As funções para manipular arquivos no PHP são fopen(), fwrite() e fclose().</p>
<p>fopen() — Abre o arquivo<br />
fwrite() — Escreve no arquivo<br />
fclose() — Fecha o arquivo</p>
<p>Parametros para leitura e escrita em um arquivo usando fopen();</p>
<p>‘r’ —  Abre somente para leitura e coloca o ponteiro no começo do arquivo.</p>
<p>‘r+’ — Abre para leitura e gravação e coloca o ponteiro no começo do arquivo.</p>
<p>‘w’ —  Abre somente para gravação e coloca o ponteiro no começo do arquivo e apaga o conteúdo que já foi escrito. Se o arquivo não existir tenta criar.</p>
<p>‘w+’ — Abre para leitura e escrita e coloca o ponteiro no início do arquivo e apaga o conteúdo que já foi escrito. Se o arquivo não existir tenta criar.</p>
<p>‘a’ —  Abre o arquivo somente para escrita e coloca o ponteiro no fim do arquivo. Se o arquivo não existir tenta criar.</p>
<p>‘a+’ — Abre o arquivo para leitura e gravação e coloca o ponteiro no fim do arquivo. Se o arquivo não existir tenta criar.</p>
<pre class="brush: php">
// getcwd() retorna o diretório atual em sucesso, ou FALSE em falha.
$caminho = getcwd(). &#039;/csv/&#039;;
$data = date(&#039;d_m_y&#039;);
$file_path = $caminho.$data.&#039;_lista.csv&#039;;

$dados = &#039;&#039;;
// Nome das colunas
$dados .= &#039;NOME,IDADE&#039;;
$dados .=&quot;\n&quot;;
// Valores da Coluna

$dados .= &#039;Maria,21&#039;;
$dados .=&quot;\n&quot;;

$dados .= &#039;João,33&#039;;
$dados .=&quot;\n&quot;;

// Verifique se vc tem permissão de leitura e escrita neste diretorio
if(fwrite($file=fopen($file_path,&#039;w+&#039;),$dados)) {
fclose($file);
echo &quot;Arquivo gravado com sucesso!&quot;;
} else {
echo &quot;Erro ao abrir arquivo!&quot;;
}
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.<br />
Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/03/25/como-criar-um-arquivo-csv-e-gravar-em-um-diretorio/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
