Приднестровская поддержка XOOPS
При работе с таблицами (например, в 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-таблицу, можно воспользоваться кодом, приведенным в листинге 47.
Листинг 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);
?>
Отправитель | Нити |
---|
4 пользователь(ей) активно (2 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 4 далее... |