Часто для работы скрипта требуется ввод каких то данных, например, для заполнения полей при подаче объявлений на доски,
заполнении виз или форм подачи заявок на кредиты и т.д. Эти данные можно брать из баз данных,
из текстовых файлов различного формата, со страниц вашего сайта, из почтовых ящиков.
Но одним из наиболее удобных форматов являются данные представленные в формате csv файлов.
Это файлы, каждая строка которых содержит данные для заполнения одной формы или объявления,
значения которых разделены ; и могут быть взять в кавычки — «.
К примеру вот строка из файла данных для нашего скрипта публикации объявлений на доске Slando:

Вот о том как работать с такими данными мы и расскажем в этой статье.

Итак, у нас есть файл data.csv в котором содержатся следующие данные:

Рассмотрим способы получения этих данных в скрипт.

Первый и самый примитивный способ это использование php функций file и explode. Ниже приведён пример скрипта,
который использует эти функции для разбора csv файла:

В результате работы скрипта в окне отладки мы увидим следующее:

Минус данного способа внутри данных нельзя использовать разделители. В нашем случае это «;» .

В php для работы с csv файлами есть функции fgetcsv и str_getcsv.

Функция fgetcsv читает строку из файла и разбирает данные CSV. Она похожа на функцию fgets(),
только дополнительно делает анализ строки на формат CSV и возвращает разобранные поля в виде массива.
Возвращает FALSE в случае ошибки или прочитав полностью файл.Пустая строка будет возвращена в виде массива,
содержащего один элемент null, ошибки в данном случае не будет.

Ниже приведём пример использования этой функции для файла data.csv:

str_getcsv — данная функция выполняет разбор строки в формате CSV и возвращает массив с полученными из строки полями.
То есть она работает аналогично explode, но только конкретно для csv строк. Таким образом, эта функция будет корректно разбирать csv данные,
в том числе и с содержанием спецсимволов, например:

в результате работы explode будем иметь:

в результате работы функции str_getcsv

Пример скрипта с использованием str_getcsv:

В результате работы скрипта имеем:

Так же в интернете можно найти множество самописных классов php,
которые работают с файлами в csv формате и использовать их в скриптах для Human Emulator,
как впрочем любые классы написание на php.

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

*
*

2 × 1 =

Required fields are marked *