CSV файлы содержат значения, разделенные запятыми, и являются популярным, хорошо зарекомендовавшим себя форматом обработки данных, используемым для хранения данных в табличной форме. Эти файлы можно легко создать в MS Excel, OpenOffice и Google Sheets. Разбор CSV file читает файл построчно и разделяет строки на значения массива.
В этом руководстве мы объясним, как вы можете разобрать CSV файл с помощью PHP.
Разобрать файл CSV с помощью PHP
Встроенный метод PHP, который анализирует файл CSV: fgetcsv() и он читает строку из файла CSV и анализирует ее в массив.
Синтаксис использования fgetcsv() функция в PHP выглядит следующим образом:
fgetcsv ( '<имя файла>.csv' , длина , ',' )
Эта функция принимает три параметра, имя файла, необязательный параметр длины самой длинной строки, а затем еще один необязательный разделитель поля параметра. Разделителем полей по умолчанию является запятая, заключенная в двойные кавычки.
Используйте функцию fgetcsv() для анализа файла CSV в PHP
Вот как вы можете использовать fgetcsv() функция для анализа файла CSV в PHP:
Шаг 1 : Сначала откройте файл CSV с помощью fopen() функция. Здесь р режим используется для открытия файла для чтения и $дескриптор это дескриптор для хранения данных из файла:
$дескриптор '=' fopen ( 'имя файла.csv' , 'р' ) ;
Шаг 2 : после этого вы можете использовать цикл while для разбора каждого CSV строку отдельно, цикл будет продолжаться до конца файла:
пока ( ( $данные '=' fgetcsv ( $дескриптор , 1000 , ',' ) ) !== ЛОЖЬ ){
// Чтение данных CSV-файла
}
Шаг 3 : Как только файл будет прочитан, вы должны закрыть его с помощью функции fclose(), передав дескриптор в качестве единственного аргумента.
закрыть ( $дескриптор ) ;Вот полный код на PHP, который следует вышеописанным шагам и позволяет открыть CSV-файл в режиме только для чтения, если файл найден, иначе вернет ЛОЖЬ :
$дескриптор '=' fopen ( 'данные.csv' , 'р' ) ;
пока ( ( $строка '=' fgetcsv ( $дескриптор ) ) !== ЛОЖЬ ) {
var_dump ( $строка ) ;
}
закрыть ( $дескриптор ) ;
?>
Приведенный выше код сначала открывает файл data.csv в режиме чтения с помощью функции fopen() и присваивает дескриптор файла переменной $handle. После этого он считывает каждую строку файла, используя цикл while и функцию fgetcsv(). В коде используется сравнение !== false, чтобы обеспечить чтение до конца файла.
Выход
Преобразование файла CSV в многомерный массив в PHP
Вы также можете разобрать CSV файл, преобразовав его в многомерный массив, чтобы данные легко читались внутри файла. Следующий код поможет вам более организованно извлечь данные из файла CSV.
$filename '=' 'данные.csv' ;
$ вложенный_массив '=' [ ] ;
если ( ( $дескриптор '=' fopen ( ' {$имя файла} ' , 'р' ) ) !== ЛОЖЬ )
{
пока ( ( $данные '=' fgetcsv ( $дескриптор , 1000 , ',' ) ) !== ЛОЖЬ )
{
$ вложенный_массив [ ] '=' $данные ;
}
закрыть ( $дескриптор ) ;
}
эхо '<пред>' ;
var_dump ( $ вложенный_массив ) ;
эхо 'пред>' ;
Чтобы привести данные в удобочитаемый формат, приведенный выше код использует функцию, называемую var_dump() который форматирует и выводит данные в структурированном виде в предварительном теге HTML.
Выход
Вот еще один способ открыть CSV файл в PHP более индивидуальным образом. Приведенный ниже код будет отображать данные каждой строки. Сначала мы открыли файл с помощью функция fopen() . Затем используйте дескриптор, чтобы поместить в него каждую строку файла, и используйте цикл while, чтобы прочитать весь CSV файла, пока указатель не достигнет конца файла. В конце закрываем файл:
$строка '=' 1 ;
если ( ( $дескриптор '=' fopen ( 'данные.csv' , 'р' ) ) !== ЛОЖЬ ) {
пока ( ( $данные '=' fgetcsv ( $дескриптор , 1000 , ',' ) ) !== ЛОЖЬ ) {
$номера '=' считать ( $данные ) ;
эхо '
$номера поля в очереди $строка :
$строка ++;
для ( $с '=' 0 ; $с < $номера ; $с ++ ) {
эхо $данные [ $с ] . '
\n ' ;
}
}
закрыть ( $дескриптор ) ;
}
?>
Выход
Нижняя граница
В PHP , мы можем открыть файл с помощью fopen() функцию, прочитать файл построчно, используя fgetcsv() и закройте файл с помощью fclose() функция. Этот процесс можно повторить для каждой строки в CSV файл, позволяющий легко читать табличные данные и управлять ими в PHP.