(PHP 4, PHP 5)
fgetcsv — Взима ред от файл от текущата позиция, указана от указателя на файла, и го анализира за CVS полета
Функцията е подобна на fgets() с изключение на това, че fgetcsv() прави разбор на реда, който прочита за полета в CSV формат и връща масив, който ги съдържа.
Валиден файлов манипулатор, който е бил успешно отворен с fopen (), popen(), or fsockopen().
Дължина.Трябва да бъде по-голяма от най-дългия ред (измерено в брой символи), съдържащ се в CVS файла (да се взимат под внимание и символите за край на ред). Параметърът стана опционален в PHP 5. При пропускането на този параметър (или установяването му в 0 при PHP 5.0.4 или по-големи), максималната дължина на реда не се ограничава, което забававя малко изпълнението.
Задава разделител между полетата (трябва да е един символ само). По подразбиране е запетая.
Задава заграждащ символ (трябва да е един символ само). По подразбиране е двойна кавичка. Параметърът е добавен в PHP 4.3.0.
Задава освобождаващ символ. По подразбиране е обратна наклонена черта (\).
Връща масив, съдържащ изчетените полета.
Забележка: Празен ред в CVS файла ще бъде върнат като масив съдържащ null (и съответно ред няма да бъде считано за грешка при парсването).
Забележка: В случай че PHP не разпознава правилно краищата на редовете при четене или писане на файлове в Macintosh (или файлове създадени на Macintosh), включването на конфигурационната директива по време на изпълнение auto_detect_line_endings може да помогне за разрешаване на проблема.
fgetcsv() При грешка връша FALSE включително и когато достигне края на файла.
Версия | Описание |
---|---|
5.3.0 | Добавен е параметърът escape . |
4.3.5 | fgetcsv() е двоично безопасна. |
4.3.0 | Добавен е параметърът enclosure . |
Example #1 Изчита и показва съдържанието на CSV файл
<?php
$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
?>
Забележка: Тази функция взема предвид настройките на локала. Ако LANG е например en_US.UTF-8, файловете с еднобайтово кодиране на знаците ще бъдат прочетени неправилно.