Работа с текстовыми файлами в 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>";
?>
Теперь наш скрипт не только выводит данные в таблицу, но и делает это красиво. Добавили стили для таблицы, чтобы она выглядела аккуратно и профессионально.
Автор статьи:
Обновлено:
Добавить комментарий