
PHP
Como Ler um arquivo CSV utilizando a linguagem de programação PHP
Na Primeira linha iremos definir o nome do arquivo:
$name_csv = 'ARQUIVO.csv';
Na sequência declaramos a função “lineStart”:
function lineStart($file) {
$position = ftell($file);
while (fgetc($file) != "\n") {
fseek($file, --$position);
if ($position == 0) break;
}
return $position;
} A ideia será ler linha por linha do arquivo CSV, porém a cada leitura iremos remover a linha do próprio arquivo. Dessa forma poderemos processar arquivos extensos, com uma grande quantidade de linhas e mesmo que ocorra timeout, poderemos continuar da onde paramos.
Abrimos o arquivo CSV
$file = fopen($name_csv, 'r+');
Apontamos o ponteiro para o final do arquivo (A leitura do CSV será pelo final do arquivo, última linha)
fseek($file, -1, SEEK_END);
Na sequência começamos a leitura do arquivo
while (fstat($file)['size']) {
lineStart($file);
$data = fgetcsv($file); /* arquivo você irá aplicar a sua lógica */
ftruncate($file, lineStart($file)); /* removemos a linha processada do arquivo CSV */ }
fclose($file);
$name_csv = 'ARQUIVO.csv';
function lineStart($file) {
$position = ftell($file);
while (fgetc($file) != "\n") {
fseek($file, --$position);
if ($position == 0) break;
}
return $position;
}
$file = fopen($name_csv, 'r+');
fseek($file, -1, SEEK_END);
while (fstat($file)['size']) {
lineStart($file);
$data = fgetcsv($file);
/* arquivo você irá aplicar a sua lógica */ ftruncate($file, lineStart($file));
}
fclose($file);
Pedido que não fatura e e-mail que não sai porque todo job fica missed: como ler a cron_schedule, conferir o…
Uma função curta em PHP 8.3 que transforma Camiseta Preta Tamanho GG em camiseta-preta-tamanho-gg, sem depender do locale do servidor.
O banner registra o clique só no navegador e some. Veja a tabela MySQL e o endpoint que gravam a…
A classe do comando existe e o bin/magento list ignora ela. Falta o registro no di.xml: aqui vai a classe…
Como traduzir duas mil linhas do pt_BR.csv do Magento 2 lendo com fgetcsv e regravando com fputcsv, sem encostar na…
Produto variável respondendo "Desculpe, este produto não está disponível" mesmo com a variação ativa: limpe os transients do WooCommerce e…