#php #dbf
#php #dbf
Вопрос:
У меня есть большой файл DBF, который я просто хотел бы прочитать как файл .csv или .txt, преобразовав его в массив.
$file = file_get_contents('data.dbf');
Выполнение этого просто импортирует его как один огромный текстовый блок. Я пытался
explode("nr", $file);
но это, похоже, тоже не работает, поскольку он обрабатывает его как одну гигантскую строку без разрывов строк. Excel, кстати, отлично его читает.
У меня не установлено расширение dbase (даже не уверен, смогу ли я это легко сделать). Есть ли какой-либо другой способ, которым я могу правильно прочитать его построчно?
Комментарии:
1. Попробуйте file() вместо file_get_contents() . Это создает массив, каждый элемент которого является одной строкой файла. php.net/manual/en/function.file.php
2. Я пробовал это. Кажется, что он по-прежнему рассматривает его как одну гигантскую строку.
Ответ №1:
Для DBF-файлов лучше использовать dBase PECL-extension, это позволяет вам правильно их читать и разделять поля в массив.
Если вы все еще хотите использовать file(), примите во внимание примечание из руководства:
Если PHP неправильно распознает окончания строк при чтении файлов на компьютере Macintosh или созданных на нем, включение параметра настройки auto_detect_line_endings во время выполнения может помочь решить проблему.