Чтение CSV-файлов. Преобразование CSV-файла в HTML-таблицу

Опубликовал: Wednesday, March 14, 2024 в категории HTML | Пока нет комментариев

При работе с таблицами (например, в Excel) есть возможность сохранения таб- лицы в формате CSV. В этом формате каждая строка будет содержать значения ряда ячеек таблицы, разделенных точкой с запятой. Например, таблица

1

2

3

4

5

6

7

8

9

10

11

12

при сохранении в формате CSV будет выглядеть следующим образом:

1;2;3;4

5;6;7;8

9;10;11;12

Для чтения CSV-файлов используется функция fgetcsv(). Функция имеет следующий формат:

fgetcsv(<Дескриптор>, [<Длина в байтах>], [<Разделитель>], [<Ограничитель>]);

Если <Разделитель> не указан, то по умолчанию используется , (запятая). А если не указан <Ограничитель>, то по умолчанию используется символ " (кавычка).

Функция fgetcsv() считывает из файла одну строку при каждом вызове. Считывание будет выполняться до тех пор, пока не встретится символ новой строки (\n), символ конца файла или из файла не будет прочитано указанное количество байт. Строка будет разбита по разделителю <Разделитель> и по- мещена в возвращаемый массив.

Если какая-либо ячейка содержит символ разделителя, то все содержимое ячейки обычно заключается в кавычки. Если используется другой символ, то он должен быть указан в параметре <Ограничитель>.

При сохранении в формате CSV таблица

1

2

3

4

5

6

7

8

9

10

11

12;15

будет выглядеть так:

1;2;3;4

5;6;7;8

9;10;11;"12;15"

Чтобы преобразовать CSV-файл в HTML-таблицу, можно воспользоваться кодом, приведенным в листинге 5.47.

Листинг 5.47. Преобразование CSV-файла в HTML-таблицу

<?php

@$file = fopen(‘filecsv.csv’, ‘r’) or die(‘Ошибка’);

flock($file, 1);

echo ‘<table cellspacing="0" cellpadding="5" border="1" width="200">’;

echo "\n";

while(!feof($file)) {

$Mass = fgetcsv($file, 1024, ‘;’);

$j = count($Mass);

if ($j != 1) {

echo ‘<tr align="center">’ . "\n";

for ($k=0; $k<$j; $k++) { echo ‘<td width="25%">’; echo $Mass[$k];

echo "</td>\n";

}

echo "</tr>\n";

}

}

echo ‘</table>’;

flock($file, 3); // 3 == LOCK_UN

fclose($file);

?>

Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *