do not import blank lines - php

Asked

Viewed 369 times

0

I have this code, but there must be some error. When I try to open the file the browser gives no answer.

 $lines = file($_FILES['arquivo']['tmp_name'],FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
 $fp = fopen($_FILES['arquivo']['tmp_name'], 'w'); 
 fwrite($fp, implode(PHP_EOL, $lines));
 var_dump($lines);

        while(!feof($lines)) {
            $linhas = fgets($lines);
            $dados = explode(";", $linhas); 
            $conteudo = array();

            $conteudo[] = [
                'funcionario_cargo' => $dados[0],
                'funcionario_matricula' => $dados[1],
                'funcionario_nome' => $dados[2],                               
                'funcionario_title' => Check::Name($dados[2]),            
                'funcionario_cpf' => $dados[3],
                'funcionario_data_nascimento' => $dados[4],
                'funcionario_portaria' => $dados[5],
                'funcionario_data_beneficio' => $dados[6],
                'funcionario_data_beneficio_publicacao' => $dados[7],
                'funcionario_situacao' => $dados[8], 
                'funcionario_regra' => $dados[9],
                'funcionario_regramunicipal' => $dados[10],
                'funcionario_valor' => $dados[11],
                'funcionario_reajuste' => $dados[12],
                'funcionario_processo' => $dados[13],
                'funcionario_data_falecimento' => $dados[14],
                'funcionario_data_termino_pensao' => $dados[15],
                'funcionario_views' => 0,
                'funcionario_status' => 1,
                'funcionario_date' => date('Y-m-d H:i:s'),
                'funcionario_author' => 1,
            ];


            $Create->ExeCreateMulti(DB_FUNCIONARIO, $conteudo);
            $jSON['content'] =  "<b>Arquivo Importado com Sucesso!";

        }

1 answer

0


Adds this condition to $linhas = fgets($lines);, with this condition will ignore blank lines.

Chooses one of the two conditions both result, in my opinion I prefer the first.

if ($linha[0] == "\n") continue;

// ou esta

if (trim($linha[0]) == '') continue;
  • After: dados = explode(";", $linhas); ;if (!$linhas == ""):

  • read my solution, it worked just like you did ?

  • 13dev, I did not get a favorable result with the solution you presented. I did so and it worked. I inserted after this line: $dados = explode(";", $linhas); if ($linhas != "\n" && $linhas != ""):

  • just insert this: if ($linha[0] == "\n") continue;

Browser other questions tagged

You are not signed in. Login or sign up in order to post.