Чтение 9MB CSV -файла в PHP -Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Чтение 9MB CSV -файла в PHP -

Сообщение Anonymous »

Добрый день, я пытаюсь прочитать файл CSV размером 9 МБ и содержит около 40000 записей. Однако я получаю эту ошибку по ошибке: разрешенный размер памяти 134217728 байтов из исчерпания (попытка выделить 47464808 байтов). но мои настройки PHP.Ini.Overrides:
upload_max_filesize = 100m
post_max_size = 108m
Эта ошибка возникает, когда я отправляю данные в свое представление и пытаюсь отобразить его. < /p>
//-->view code

style="min-height:50vh">

Dados do Arquivo





















//-->end view code

//-->php code
public static function processar(string $arquivo): array {

$finfo = new finfo();
if (base64_encode(base64_decode($arquivo, true)) === $arquivo) {
$conteudo = base64_decode($arquivo, true);
$ext = $finfo->buffer($conteudo, FILEINFO_MIME_TYPE);
} else {
$conteudo = fopen($arquivo, 'r');
if ($conteudo === false) {
throw new Exception('Erro ao abrir o arquivo.');
}
$ext = $finfo->file($arquivo, FILEINFO_MIME_TYPE);
}

$resultado = match ($ext) {
'text/csv' => self::csvFile($conteudo),
default => false
};
if (is_resource($conteudo)) {
fclose($conteudo);
}
if ($resultado === false) throw new Exception('O arquivo está vazio ou inválido!');

}

private static function csvFile($csv): array {
$data = [];
$keys = fgetcsv($csv);
while (($valores = fgetcsv($csv)) !== false) {
if (count($valores) === count($keys)) {
$linha = [];

for ($i = 0; $i < count($keys); $i++) {
$linha[$keys[$i]] = $valores[$i];
}

$data[] = $linha;
}
}
if (empty($data)) {
throw new Exception('O arquivo CSV está vazio ou inválido!');
}
return $data;
< /code>
Я отправляю эти данные в представление для создания таблицы с CSV. Ошибка часто случается в представлении, но иногда это также происходит в файле, где я показываю код. Извините за мой плохой английский!

Подробнее здесь: https://stackoverflow.com/questions/795 ... -exhausted
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»