<?php
$uploadDir = 'uploads/';
$error = '';
$tableData = [];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['csv_file']) && $_FILES['csv_file']['error'] === UPLOAD_ERR_OK) {
$fileTmpPath = $_FILES['csv_file']['tmp_name'];
$fileName = $_FILES['csv_file']['name'];
$fileExtension = strtolower(pathinfo($fileName, PATHINFO_EXTENSION));
if ($fileExtension !== 'csv') {
$error = 'Ошибка: Файл должен иметь расширение .csv';
} else {
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0755, true);
}
$destPath = $uploadDir . basename($fileName);
if (move_uploaded_file($fileTmpPath, $destPath)) {
if (($handle = fopen($destPath, 'r')) !== false) {
while (($row = fgetcsv($handle, 1000, ",")) !== false) {
$tableData[] = $row;
}
fclose($handle);
if (empty($tableData)) {
$error = 'Ошибка: Не удалось распарсить CSV или файл пуст';
}
} else {
$error = 'Ошибка при открытии сохраненного файла';
}
} else {
$error = 'Ошибка при перемещении загруженного файла';
}
}
} else {
$error = 'Ошибка при загрузке файла на сервер';
}
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Загрузка CSV</title>
</head>
<body>
<?php if (!empty($error)): ?>
<span style="color: red;"><?php echo $error; ?></span><br><br>
<?php endif; ?>
<form method="POST" action="" enctype="multipart/form-data">
Выберите файл CSV:<br>
<input type="file" name="csv_file" accept=".csv"><br><br>
<input type="submit" value="Загрузить и обработать">
</form>
<?php if (!empty($tableData)): ?>
<h2>Данные из CSV-файла:</h2>
<table border="1" cellpadding="5" cellspacing="0">
<?php foreach ($tableData as $index => $row): ?>
<?php if ($index === 0): ?>
<tr>
<?php foreach ($row as $cell): ?>
<th><?php echo htmlspecialchars($cell); ?></th>
<?php endforeach; ?>
</tr>
<?php else: ?>
<tr>
<?php foreach ($row as $cell): ?>
<td><?php echo htmlspecialchars($cell); ?></td>
<?php endforeach; ?>
</tr>
<?php endif; ?>
<?php endforeach; ?>
</table>
<?php endif; ?>
</body>
</html>