Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nakid.mkt

Sustituição de cabeçalho em arquivo texto

Recommended Posts

Oi pessoal, tudo bem?

 

tenho arquivos texto para importação de anúncios nos sites aqui da empresa;

Vou dar um exemplo simples que como funciona:

 

 

arquivo.csv

 

"nome","senha","cidade","estado","titulo do anuncio"

"marcos","abc1","bauru",SP","Vendo meu carro"

"Renata","ab99","sao paulo","SP","Salao de beleza Tal"

e por aí vai...

 

preciso tirar as aspas apenas do cabeçalho. Se eu pudesse ler o arquivo todo, jogar numa string, manipular a string e gravar novamente não teria problema algum. Aliás quase tudo que eu encontri na net é assim. Mas esses arquivos .csv possuem muito mais colunas e muitas vezes chega a conter 20 milhoes de linhas. Então fica inviável.

 

gostaria de saber se tem uma forma de eu fazer isso sem tirar o ponteiro das primeiras linhas do arquivo.

 

O máximo que eu consegui foi:

       $filename = "meu_arquivo.csv"
       $handle = fopen($filename, "r+");
$sample_header = fgets($handle);
rewind($handle);
$sample_header = str_replace("\"", "", $sample_header);
$return = fputs($handle, $sample_header);
       fclose($handle);

Mas isso gera algo como:

 

nome,senha,cidade,estado,titulo do anuncio

tado","titulo do anuncio"

anuncios...

 

isso acontece porque o cabecalho com aspas é maior justamente por causa do número de aspas. Assim éle não é totalmente sobrescrito.

 

Não existem comandos para escrever linha em arquivo texto sem sobrescrever? Ou apagar uma linha toda? Céus, porque isso não existe ou é tão difícil de achar.

 

Alguma luz? E mesmo que eu tenha que correr o arquivo todo, qual a forma mais viável? Não se esqueçam que tem que funcionar para um número astronômico de linhas, arquivo texto gigantesco.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O João Batista postou uma classe para manipular arquivos CSV.

http://forum.imasters.com.br/index.php?/topic/379451-csviterator/

 

Dá uma olhada, mas acho que vai te resolver.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.