RESOLVIDO insert atraves de txt com remoção de linhas e caracteres indesejaves

Olá
no tópico abaixo mostra como inserir dados no banco de dados com dados vindos de um arquivo txt. Gostaria de ajuda para implementar para ignorar a primeira linha (abeçalho do arquivo) para importação a partir da segunda linha
att

http://www.scriptcase.com.br/forum/index.php/topic,15959.msg84147.html#msg84147

Já pesquisou na internet?

https://www.google.com.br/amp/s/imasters.com.br/artigo/1134/php/php-lendo-um-arquivo-txt/amp/%3Ftrace=1519021197&source=single

Haroldo e demais
pesquisei e tentei de várias maneiras resolver, mas não sei onde estou errando
segue abaixo codigo, se alguem puder me ajudar, agradeço.

// SQL setando parametros
$delete_table = ‘ppr_anual’; // Table name
$delete_where = “cliente_id = ‘{cliente}’ AND ppr_ano = ‘{ppr_ano}’”; // Where clause

// Deletando registros
$delete_sql = 'DELETE FROM ’ . $delete_table
. ’ WHERE ’ . $delete_where;
sc_exec_sql($delete_sql);

$pathFile = $this->Ini->path_doc . “/” . {arquivo};

$arquivo = fopen($pathFile , ‘r+’);
//$cabecalho = “aaaaaa;”;
if ($arquivo == false) die(‘Não foi possível abrir o arquivo.’);

while(!feof($arquivo)) {

$linha = fgets($arquivo); // LÊ CADA LINHA
//$qtlines = count($linhas);
//	$remover_cabecalho = unset($qtlines[0]);

$l = 0 ;

foreach( $linha as $linha2 ) {
if ( $l >= 1 ) {
echo $linha2;

$dados = explode(";",$linha2);
 

	$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";

echo $teste = 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, cliente_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}', 
'{cliente}','$campo1', '{data_lancamento}')"); //INSERE CADA LINHA

++$l ;
}

}

if($teste == true){
echo"Sucesso";}
else{
echo"Erro";}

fclose($arquivo);

Consegui ignorar a primeira linha e dar o insert a partir da segunda linha separando por colunas.
Agora a dificuldade é outra, não estou conseguindo eliminar a ultima linha se ela for vazia, já tentei usar TRIM, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES e UNSET

Bom dia!
Consegui resolver tudo q eu queria:
Ignorar primeira linha (cabeçalho) no txt;
Ignorar a linha vazia (branco) no final do txt;
remover (substituir) caracteres não desejáveis ou q causavam erro na importação.

Sou iniciante no php e scriptcase, vou postar o código caso alguém tenha alguma sugestão para contribuir,
se alguém puder contribuir como eu pego o txt de um arquivo zipado, agradeço.

Abraços

/**
*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]);

// ARRUMANDO A DATA PARA GRAVAR NO BANCO POSTGRES
$data = $campo9;
$dia = substr($data, 0, 2);
$mes = substr($data, 3, 2);
$ano = substr($data, 6, 4);
$campo9_gravar = $ano."-".$mes."-".$dia;

    // SUBSTITUINDO A VIRGULA POR PONTO PARA CAMPO NUMERICO PARA GRAVAR NO BANCO CORRETAMENTE
$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);