note 107727 added to book.dbase

From: Date: Wed, 29 Feb 2012 16:27:54 +0000
Subject: note 107727 added to book.dbase
Groups: php.notes 
Request: Send a blank email to php-notes+get-186428@lists.php.net to get a copy of this message
Thank you Erich, this really helped me. To skip deleted records I use this modified (see /**/) version: <?php function echo_dbf($dbfname) { $fdbf = fopen($dbfname,'r'); $fields = array(); $buf = fread($fdbf,32); $header=unpack( "VRecordCount/vFirstRecord/vRecordLength", substr($buf,4,8)); echo 'Header: '.json_encode($header).'<br/>'; $goon = true; /**/$unpackString='A1DeletionFlag/'; while ($goon && !feof($fdbf)) { // read fields: $buf = fread($fdbf,32); if (substr($buf,0,1)==chr(13)) {$goon=false;} // end of field list else { $field=unpack( "a11fieldname/A1fieldtype/Voffset/Cfieldlen/Cfielddec", substr($buf,0,18)); echo 'Field: '.json_encode($field).'<br/>'; $unpackString.="A$field[fieldlen]$field[fieldname]/"; array_push($fields, $field);}} /**/fseek($fdbf, $header['FirstRecord']); // move back to the start of the first record (after the field definitions) for ($i=1; $i<=$header['RecordCount']; $i++) { $buf = fread($fdbf,$header['RecordLength']); $record=unpack($unpackString,$buf); /**/ if ($record['DeletionFlag'] == '*') continue; echo 'record: '.json_encode($record).'<br/>'; echo $i.$buf.'<br/>';} //raw record fclose($fdbf); } ?> ---- Server IP: 69.147.83.197 Probable Submitter: 88.79.195.12 ---- Manual Page -- http://www.php.net/manual/en/book.dbase.php Edit -- https://master.php.net/note/edit/107727 Del: integrated -- https://master.php.net/note/delete/107727/integrated Del: useless -- https://master.php.net/note/delete/107727/useless Del: bad code -- https://master.php.net/note/delete/107727/bad+code Del: spam -- https://master.php.net/note/delete/107727/spam Del: non-english -- https://master.php.net/note/delete/107727/non-english Del: in docs -- https://master.php.net/note/delete/107727/in+docs Del: other reasons-- https://master.php.net/note/delete/107727 Reject -- https://master.php.net/note/reject/107727 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#186428) next »