Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá amigos
Estou tentando importar um arquivo txt, porém preciso excluir o cabeçalho, iniciando a importação dos dados pela segunda linha:
Tentei da seguinte forma, porém não deu certo:
$arquivo = fopen($pathFile, 'r');
if ($arquivo == false) die('Não foi possível abrir o arquivo.');
$tot_linha = count($arquivo);
$i=1;
while(!feof($arquivo)) {
$tot_linha = count($arquivo);
for($i=1; $i<$tot_linha; $i++){
$linha = fgets($arquivo);
$dados = explode(";",$linha);
$campo1 = $dados[0];
$campo2 = $dados[1];
$campo3 = $dados[2];
$teste = sc_exec_sql("INSERT into minha_tabela(meus_dados) VALUES ('$campo1',...........");
}
$i++;
}
if($teste == true){
echo"Sucesso";}
else{
echo"Erro";}
fclose($arquivo);
Desde já agradeço.olá Bruno
tentei pegar sua dica e adaptar ao meu código, tentei dentro do while, fora também, mas não consegui. Alguma dica de como fazer ignorar a primeira linha no meu código?
$pathFile = $this->Ini->path_doc . "/" . {arquivo};
$arquivo = fopen($pathFile , 'r');
if ($arquivo == false) die('Não foi possível abrir o arquivo.');
while(!feof($arquivo)) {
$linha = fgets($arquivo); // LÊ CADA LINHA
$dados = explode(";",$linha);
$campo1 = $dados[0];
$campo2 = $dados[1];
$campo3 = $dados[2];
$campo4 = $dados[3];
$campo5 = $dados[4];
$campo6 = $dados[5];
$campo7 = $dados[6];
$campo8 = $dados[7];
$campo9 = $dados[8];
$campo10 = $dados[9];
$campo11 = $dados[10];
$campo12 = $dados[11];
$campo13 = $dados[12];
$campo14 = $dados[13];
$campo15 = $dados[14];
$campo16 = $dados[15];
$campo17 = $dados[16];
$campo18 = $dados[17];
$campo19 = $dados[18];
$data = $campo9;
$dia = substr($data, 0, 2);
$mes = substr($data, 3, 2);
$ano = substr($data, 6, 4);
$campo9_gravar = $ano."-".$mes."-".$dia;
$ppr_valor_bruto = floatval(str_replace(',', '.', str_replace('.', '', $campo6)));
$ppr_total_nfe = floatval(str_replace(',', '.', str_replace('.', '', $campo17)));
$ppr_quantidade = floatval(str_replace(',', '.', str_replace('.', '', $campo4)));
//echo "<br>$campo4_gravar";
$sql = sc_exec_sql("INSERT into ppr_anual(ppr_ncm, ppr_descricao, ppr_cfop, ppr_quantidade, ppr_unidade, ppr_valor_bruto, ppr_opracao_nfe, ppr_situacao_nfe, ppr_data_nfe, ppr_ie_emitente, ppr_uf_emitente, ppr_ie_destinatario, ppr_uf_destino, ppr_modelo_df, ppr_serie_nfe, ppr_nfe, ppr_total_nfe, ppr_situacao_aim, ppr_chave_acesso, ppr_ano, ppr_municipio_id, ppr_ncm2, ppr_data_lancamento) VALUES ('$campo1', '$campo2', '$campo3', '$ppr_quantidade', '$campo5', '$ppr_valor_bruto', '$campo7', '$campo8', '$campo9_gravar', '$campo10', '$campo11', '$campo12', '$campo13', '$campo14', '$campo15', '$campo16', '$ppr_total_nfe', '$campo18', '$campo19','{ppr_ano}',
'{municipio}','$campo1', '{data_lancamento}')"); //INSERE CADA LINHA
}
if($teste == true){
echo"Sucesso";}
else{
echo"Erro";}
fclose($arquivo);
att
O conceito é esse aqui:
$text = "EXCLUIR PRIMEIRA LINHA
opaaa
opaaaaaaa
";
// abro um arquivo pra teste
$file = fopen("test.txt","w");
fwrite($file, $text);
fclose($file);
// pego o arquivo pra ler
$get = fopen("test.txt","r");
$get_first_line = fgets($get,9999);
// faço a alteração removendo a primeira linha
$new_text = preg_replace("/".$get_first_line."/","",$text,1);
echo "texto original:<br>";
echo $text . "<br><br>";
echo "texto modificado:<br>";
echo $new_text;Valeu. Vou tentar aqui!
Olá
consegui resolver, valeu pelas sugestões.
segue o código, sou iniciante em php e estou usando scriptcase, se alguém tiver sugestões para melhor pode postar
att
/**
*DELETANDO DADOS DA TABELA
*/
// SQL setando parametros
$delete_table = 'anual'; // Table name
$delete_where = "cliente_id = '{cliente}' AND ano = '{ano}'"; // Where clause
// Deletando registros
$delete_sql = 'DELETE FROM ' . $delete_table
. ' WHERE ' . $delete_where;
sc_exec_sql($delete_sql);
// ATÉ AQUI CÓDIGO PARA LIMPAR TABELA
// INICIO DO CÓDIGO PARA IMPORTAR TXT
$pathFile = $this->Ini->path_doc . "/" . {arquivo};
$arquivo = fopen($pathFile , 'r');
if ($arquivo == false) die('Não foi possível abrir o arquivo.');
{ // IF PARA SEPARAR CABEÇALHO (PRIMEIRA LINHA) DO RESTANTE
// Lê o conteúdo do arquivo
$cabecalho = fgets($arquivo, 1024);
//echo $cabecalho.'<br />';
{ // LER RESTANTE DO ARQUIVO
while(!feof($arquivo)) {
$linha = fgets($arquivo); // LÊ CADA LINHA
if(strlen(trim($linha)) > 0) { //RETIRA A LINHA EM BRANCO
//Separa as colunas
$dados = explode(";", $linha);
$campo1 = str_replace("'","",$dados[0]); //RETIRA O ' DA COLUNA
$campo2 = str_replace("'","",$dados[1]);
$campo3 = str_replace("'","",$dados[2]);
$campo4 = str_replace("'","",$dados[3]);
$campo5 = str_replace("'","",$dados[4]);
$campo6 = str_replace("'","",$dados[5]);
$campo7 = str_replace("'","",$dados[6]);
$campo8 = str_replace("'","",$dados[7]);
$campo9 = str_replace("'","",$dados[8]);
$campo10 = str_replace("'","",$dados[9]);
$campo11 = str_replace("'","",$dados[10]);
$campo12 = str_replace("'","",$dados[11]);
$campo13 = str_replace("'","",$dados[12]);
$campo14 = str_replace("'","",$dados[13]);
$campo15 = str_replace("'","",$dados[14]);
$campo16 = str_replace("'","",$dados[15]);
$campo17 = str_replace("'","",$dados[16]);
$campo18 = str_replace("'","",$dados[17]);
$campo19 = str_replace("'","",$dados[18]);
$data = $campo9;
$dia = substr($data, 0, 2);
$mes = substr($data, 3, 2);
$ano = substr($data, 6, 4);
$campo9_gravar = $ano."-".$mes."-".$dia;
$valor_bruto = floatval(str_replace(',', '.', str_replace('.', '', $campo6)));
$total_nfe = floatval(str_replace(',', '.', str_replace('.', '', $campo17)));
$quantidade = floatval(str_replace(',', '.', str_replace('.', '', $campo4)));
//echo
$inserir = sc_exec_sql("INSERT into anual(ncm, descricao, cfop, quantidade, unidade, valor_bruto, opracao_nfe, situacao_nfe, data_nfe, ie_emitente, uf_emitente, ie_destinatario, uf_destino, modelo_df, serie_nfe, nfe, total_nfe, situacao_aim, chave_acesso, ano, cliente_id, ncm2, data_lancamento) VALUES ('$campo1', '$campo2', '$campo3', '$quantidade', '$campo5', '$valor_bruto', '$campo7', '$campo8', '$campo9_gravar', '$campo10', '$campo11', '$campo12', '$campo13', '$campo14', '$campo15', '$campo16', '$total_nfe', '$campo18', '$campo19','{ano}',
'{cliente}','$campo1', '{data_lancamento}')"); //INSERE CADA LINHA
} // FECHA REMOÇÃO DA LINHA EM BRANCO
} //FECHA WHILE
}
if($inserir == true){
echo"Sucesso";}
else{
echo"Erro";}
}
fclose($arquivo);Beleza Bruno. Deu certo. Obrigado.