Чтобы преобразовать CSV-файл PHP в многострочный массив с помощью суперглобальной переменной $_FILES, вы можете выполнить следующие действия:
- Отправьте файл CSV, используя форму с полем ввода типа «файл» и соответствующими атрибутами формы, например enctype.
- Получите загруженный файл с помощью
$_FILES['fieldname'], где «fieldname» — это атрибут имени поля ввода файла в форме. - Откройте загруженный файл с помощью
fopen()илиfile_get_contents()и прочитайте его содержимое. - Проанализируйте данные CSV с помощью
str_getcsv()илиfgetcsv(), в зависимости от того, представляете ли вы содержимое файла в виде строки или дескриптора файла. - Выполните итерацию по строкам CSV и сохраните каждую строку как элемент многострочного массива.
Вот пример реализации:
if ($_FILES['csv_file']['error'] === UPLOAD_ERR_OK) {
$file = $_FILES['csv_file']['tmp_name'];
$rows = [];
if (($handle = fopen($file, 'r')) !== false) {
while (($data = fgetcsv($handle)) !== false) {
$rows[] = $data;
}
fclose($handle);
}
// $rows now contains the multirow array representation of the CSV data
print_r($rows);
} else {
// Handle file upload error
}