PHP прочитал .Файл DBF в скрипте

#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 во время выполнения может помочь решить проблему.