Sustituição de cabeçalho em arquivo texto
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.
Discussão (1)
Carregando comentários...