Небольшая заметка о том как создавать DBF файлы средствами PHP, а так же как считывать данные из таких файлов.
В очередной раз PHP удивляет своей простотой и гибкостью. Работать с DBF файлами в PHP приходится не так уж и часто, однако делать это иногда приходиться. Нужно это как правило для создания более менее форматированного отчета или выгрузки некоторых данных.
Ниже приведен листинг кода, формирующего ДБФ файл из MySQL таблицы Users.
<?php
//Имя файла
$filename = "Users.dbf";
//Столбцы
$def = array(
array("name","C",32,0), //Имя, строка
array("id","N",8,0), //Идентификатор, целое число
array("weight","N",2,2), //Вес, дробное
);
//Создем файл
$DBF = dbase_create($filename, $def);
//Получаем данные из MySQL
$res = mysql_query("SELECT `id`, `name`, `weight` FROM `Users`");
while($row = mysql_fetch_assoc($res))
{
//Добавляем строку в файл dbf
dbase_add_record($DBF, array($row["name"], $row["id"], $row["weight"]));
}
//Закрываем указатель на файл
dbase_close($DBF);
?>
Вот и все. После срабатывания скрипта, в его директории должен появиться файл «Users.dbf».
Важно: Стоит помнить о правах доступа на запись в текущей папке!
Для того чтобы почитать данные из дбф файла можно воспользоваться следующим кодом:
<?php
$filename = "Users.dbf";
//Открываем файл для чтения
$dbf = dbase_open($filename, 0);
//Проверяем смогли ли мы открыть файл
if (!$dbf) die("Ошибка!");
$records = dbase_numrecords($dbf);
for ($i = 1; $i <= $records; $i++) {
//выполнение действий с записью $i
}
dbase_close($dbf);
?>