Отображение содержимого TXT файла в таблицу на PHP

Отображение содержимого TXT файла в таблицу на PHP

от автора

в

Работа с текстовыми файлами в PHP — это навык, который пригодится каждому веб-разработчику. Представьте ситуацию: у вас есть файл с данными, и вы хотите представить их в виде таблицы на веб-странице. Звучит просто, не так ли? Но как это сделать? Давайте разбираться вместе.

Шаг 1: Подготовка текстового файла

Для начала создадим простой текстовый файл. Пусть это будет файл data.txt со следующим содержимым:

Имя, Возраст, Город
Иван, 25, Москва
Мария, 30, Санкт-Петербург
Петр, 28, Казань

Это простой CSV файл, в котором данные разделены запятыми.

Шаг 2: Чтение файла в PHP

Первый шаг — научиться читать файл. В PHP для этого используется функция file(). Она читает файл построчно и возвращает массив строк.

<?php
// Чтение файла в массив строк
$lines = file('data.txt');

// Вывод содержимого файла
foreach ($lines as $line) {
    echo $line . "<br>";
}
?>

Этот код выведет каждую строку файла на экран. Но нам нужно больше.

Шаг 3: Парсинг содержимого файла

Теперь нам нужно преобразовать строки в массивы данных, чтобы затем отобразить их в таблице. Для этого используем функцию str_getcsv(), которая разбивает строку на элементы по разделителю.

<?php
// Чтение файла в массив строк
$lines = file('data.txt');

// Парсинг строк в массивы
$data = [];
foreach ($lines as $line) {
    $data[] = str_getcsv($line);
}

// Вывод содержимого в виде массива
print_r($data);
?>

Этот код преобразует строки в двумерный массив, где каждая строка — это массив с элементами.

Шаг 4: Отображение данных в таблице

И вот мы подошли к самому интересному — отображению данных в HTML таблице. Воспользуемся простым HTML и циклом foreach для вывода данных.

<?php
// Чтение файла в массив строк
$lines = file('data.txt');

// Парсинг строк в массивы
$data = [];
foreach ($lines as $line) {
    $data[] = str_getcsv($line);
}

// Вывод данных в таблице
echo "<table border='1'>";
foreach ($data as $row) {
    echo "<tr>";
    foreach ($row as $cell) {
        echo "<td>" . htmlspecialchars($cell) . "</td>";
    }
    echo "</tr>";
}
echo "</table>";
?>

Теперь наш скрипт выводит содержимое текстового файла в виде таблицы. Давайте разберем, что здесь происходит:

  • Чтение файла: Мы читаем файл и сохраняем его строки в массив.
  • Парсинг строк: Каждую строку разбиваем на элементы, создавая двумерный массив.
  • Создание таблицы: Используя цикл foreach, проходим по массиву данных и создаем строки и ячейки таблицы.

Шаг 5: Улучшение кода

Можно сделать наш код более гибким и устойчивым к ошибкам. Например, добавим проверку наличия файла и обработку ошибок.

<?php
$filename = 'data.txt';

// Проверка наличия файла
if (!file_exists($filename)) {
    die("Файл не найден.");
}

// Чтение файла в массив строк
$lines = file($filename);

// Парсинг строк в массивы
$data = [];
foreach ($lines as $line) {
    $data[] = str_getcsv($line);
}

// Проверка наличия данных
if (empty($data)) {
    die("Файл пуст.");
}

// Вывод данных в таблице
echo "<table border='1'>";
foreach ($data as $row) {
    echo "<tr>";
    foreach ($row as $cell) {
        echo "<td>" . htmlspecialchars($cell) . "</td>";
    }
    echo "</tr>";
}
echo "</table>";
?>

Этот код проверяет наличие файла и его содержимое перед тем, как пытаться что-то с ним делать. Это помогает избежать ошибок и делает скритп более надежным.

Шаг 6: Улучшение внешнего вида таблицы

Чтобы таблица выглядела красиво, добавим немного CSS. Это улучшит восприятие данных.

<?php
$filename = 'data.txt';

if (!file_exists($filename)) {
    die("Файл не найден.");
}

$lines = file($filename);
$data = [];
foreach ($lines as $line) {
    $data[] = str_getcsv($line);
}

if (empty($data)) {
    die("Файл пуст.");
}

echo "<style>
    table {
        width: 50%;
        border-collapse: collapse;
        margin: 20px 0;
    }
    table, th, td {
        border: 1px solid black;
    }
    th, td {
        padding: 8px;
        text-align: left;
    }
    th {
        background-color: #f2f2f2;
    }
</style>";

echo "<table>";
foreach ($data as $rowIndex => $row) {
    echo "<tr>";
    foreach ($row as $cell) {
        if ($rowIndex === 0) {
            echo "<th>" . htmlspecialchars($cell) . "</th>";
        } else {
            echo "<td>" . htmlspecialchars($cell) . "</td>";
        }
    }
    echo "</tr>";
}
echo "</table>";
?>

Теперь наш скрипт не только выводит данные в таблицу, но и делает это красиво. Добавили стили для таблицы, чтобы она выглядела аккуратно и профессионально.


Автор статьи:

Обновлено:

30.05.2024


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *