php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #38357 dbase_open can't open DBase 3 dbf file.
Submitted: 2006-08-06 13:55 UTC Modified: 2006-08-14 09:42 UTC
From: rodrigo at fabricadeideias dot com Assigned: mike (profile)
Status: Closed Package: Feature/Change Request
PHP Version: 5.1.4 OS: Linux
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: rodrigo at fabricadeideias dot com
New email:
PHP Version: OS:

 

 [2006-08-06 13:55 UTC] rodrigo at fabricadeideias dot com
Description:
------------
When trying to open a DBase 3 dbf file I get the following error:

Unable to get header

Warning: dbase_open(): unable to open database 12MU2500G.dbf in /var/www/localhost/htdocs/shape/dbase_open_bug.php on line 4

I believe this is a DBase 3 file as file returns:

# file 12MU2500G.dbf
12MU2500G.dbf: DBase 3 data file (22 records)

I also believe this file isn't corrupted as both DBD::XBase module for Perl and OpenOffice Base read the file without problems.

Reproduce code:
---------------
<?php
$db = dbase_open('12MU2500G.dbf', 0);
echo $db ? "Opened.\n" : "Not opened.\n";
?>

Expected result:
----------------
Opened.

Actual result:
--------------
Unable to get header

Warning: dbase_open(): unable to open database 12MU2500G.dbf in /var/www/localhost/htdocs/shape/dbase_open_bug.php on line 2
Not opened.


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2006-08-06 14:00 UTC] rodrigo at fabricadeideias dot com
There is a downloadable copy of the dbf file at <http://dev.ipresto.com.br/downloads/12MU2500G.dbf>.
 [2006-08-06 16:01 UTC] mike@php.net
"F" (float?) fields are not supported, so I changed the report to FR.

Can you post a record with all values, how it should look like?

 [2006-08-06 22:02 UTC] rodrigo at fabricadeideias dot com
There are float fields in this dbf file. As per XBase file definition (<http://www.clicketyclick.dk/databases/xbase/format/data_types.html#DATA_TYPES>) F fields are floating fields represented as up to 20 digits.

Here is a complete record of the .dbf file (as per Perl reading):

AREA_1: 2984.643
MSLINK: 74
NOME: Porto Acre
PERIMETRO_: 270.266
CODIGO: 1200807
AREA_TOT_G: 2984.643
SEDE: 1
LONGITUDES: -67.533
MAPID: 99
LATITUDESE: -9.588
GEOCODIGO: 1200807
 [2006-08-08 13:33 UTC] rodrigo at fabricadeideias dot com
I have a patch available at <http://dev.ipresto.com.br/downloads/dbase-float.patch> that implements floating field support for php's dbase functions.

<off-topic>
I've tried 3 times to subscribe to <php-dev@lists.php.net> to send this patch without success: there's definitely something wrong with the subscribe process as I never receive the first email the system is supposed to send me during the subscription process.
</off-topic>

Please consider it for inclusion. The patch is relative to the relased 5.1.4 version.
 [2006-08-08 14:58 UTC] mike@php.net
I'll take a look at it.

The php-dev list has been closed long time ago.
 [2006-08-14 09:42 UTC] mike@php.net
Implemented in PHP_5_2 and HEAD.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Thu Jan 02 12:01:29 2025 UTC