Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Mensagem: Deprecated, ao executar código.

Aparentemente funciona tudo normal ao executar esse código:

<?php

$arquivoCursos = new SplFileObject('cursos.csv');

while(!$arquivoCursos->eof()) {
    $linha = $arquivoCursos->fgetcsv(';');

    echo utf8_encode($linha[0]) . PHP_EOL;
}

$date = new DateTime();
$date->setTimestamp($arquivoCursos->getCTime());

echo $date->format('d/m/Y');

Porém recebo a seguinte mesagem:

PHP Deprecated: utf8_encode(): Passing null to parameter #1 ($string) of type string is deprecated

Não sei o que causou esse erro, pensei que era alguma coisa no arquivo csv, porém esta tudo normal. Resolvi então apagar a ultima linha do arquivo csv:

Quando apago ela não recebo mais o erro. Porém o arquivo ainda não é exibido da forma correta, e continua ridiculamente estranho:

Tentei pesquisar na internet por soluções, mas não encontrei nada, queria saber como resolvo e se tem solução. Vlw.

1 resposta
solução!

Christofer, sobre o primeiro problema você já entendeu: A quebra de linha estava sendo lida, porém não é um CSV válido, logo, $linha[0] não existia. E esse valor inválido estava sendo passado para função, o que gerava o erro.

Sobre o segundo erro, notei que você está usando o VSCode. Existe a possibilidade de você ter, ao editar o arquivo, ter editado também o encoding dele. Com isso o próprio VSCode "corrompeu" o arquivo. No canto inferior direito você consegue ver qual o encoding do arquivo, que deveria ser Windows-1252 (provavelmente está UTF-8, que é o padrão).

O motivo para termos salvado nesse encoding "estranho" (Windows-1252) é o Excel.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software