Главная » 2016 » Июнь » 20 » Чтение CSV-файлов
13:24
Чтение CSV-файлов
Одна из часто встречающихся задач программистов - это преобразование данных из листов Excel в более пригодную форму, например в HTML или в MySQL-таблицы. Если мы при этом будем работать с электронными книгами в формате Excel, мы создадим себе настоящую проблему. К счастью, Excel и ее аналог из OpenOffice могут экспортировать данные в формат CSV (comma-separated value) - обычный текстовый формат, в котором ряд данных представлен отдельной строкой, а поля ряда разделяются запятыми. Сделать это можно прямо в Excel. Пример такого файла см. ниже, вот его и можно уже преобразовать в HTML:  "e;Airport"e;,"e;City"e;,"e;Activity"e;  "e;LON"e;,"e;London"e;,"e;Museums"e;  "e;PAR"e;,"e;Paris"e;,"e;Dining"e;  Первое, что приходит в голову, - это прочитать строки и разбить их на отдельные значения по разделителю - запятой. Но в этом случае вам нужно позаботиться о кавычках, слэшах и других особенностях этого формата. Разработчики РНР облегчили нам жизнь и создали специальные функции для обработки CSV-файлов. Функция fgetcsv () подобна функции fgets (), за исключением того, что она возвращает массив, содержащий значения ряда данных вместо строки. Рассмотрим небольшой сценарий, загружающий CSV-файл:  <table>  <tr>   <th>Поле 1</th>   <th>Поле 2</th>   <th>Пoлe 3</th> </tr> <?php $fn = $_FILES["e;csvfile"e;] ["e;tmp_name"e;] ;  $fd = fopen($fn, "e;r"e;) ;  while (!feof($fd)) {   $fields = fgetcsv($fd) ;   print "e;<tr>"e;;   print "e;<td>$fields[0]</td><td>$fields[1] </td><td>$fields[2]</td>"e;;    print "e;</tr>"e;; } fclose($fd) ;  ?> </table> Как видите, сценарий выводит первые три колонки CSV-файла в формате HTML-таблицы.  Иногда вам придется столкнуться с файлом, в котором ряды данных разграничены табуляцией, а не запятыми. Для чтения таких файлов вам нужно передать дополнительный параметр функции fgetcsv () - разделитель:  $fields = fgetcsv($fd, 0, "e;\t"e;);  Второй параметр функции - это максимальная длина строки CSV-файла (О - неограниченная длина).
Просмотров: 32 | Добавил: AdnrNick | Рейтинг: 0.0/0
Всего комментариев: 0
avatar