1. Go to this page and download the library: Download naril/dbase library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
naril / dbase example snippets
use org\majkel\dbase\Table;
$totalSum = 0;
$dbf = Table::fromFile('some/table.dbf');
foreach ($dbf as $record) {
// returns all records cription']}\n";
use org\majkel\dbase\Table;
$dbf = Table::fromFile('some/table.dbf');
// fetch first record
$record = $dbf[0];
echo "int field: {$record->number}\n"; // returns integer
echo "bool field: {$record->boolean}\n"; // returns boolean
echo "date field: {$record->date->format('Y-m-d')}\n"; // return DateTime object
echo "text field: {$record->text}\n"; // returns string
echo "memo field: {$record->memo}\n"; // returns string (not entity id)
echo "memo field id: {$record->getMemoEntryId('memo')}\n"; // returns entity id for memo field `memo`
echo "is record deleted: {$record->isDeleted('memo')}\n"; // returns whether record is deleted
// ... or ...
echo "int field: {$record['number']}\n"; // returns integer
echo "bool field: {$record['boolean']}\n"; // returns boolean
echo "date field: {$record['date']->format('Y-m-d')}\n"; // return DateTime object
echo "text field: {$record['text']}\n"; // returns string
echo "memo field: {$record['memo']}\n"; // returns string (not entity id)
echo "memo field id: {$record->getMemoEntryId('memo')}\n"; // returns entity id for memo field `memo`
echo "is record deleted: {$record->isDeleted('memo')}\n"; // returns whether record is deleted
// you can loop over fields in the record
foreach ($record as $fieldName => $fieldValue) {
echo "$fieldName = $fieldValue\n";
}
use org\majkel\dbase\Table;
$dbf = Table::fromFile('some/table.dbf');
// fetch first record
$record = $dbf[0];
$record->number = 123;
$record->boolean = true;
$record->date = new DateTime();
$record->text = 'some text';
$record->memo = 'some longer text';
// ... or ...
$record['number'] = 123;
$record['boolean'] = true;
$record['date'] = new DateTime();
$record['text'] = 'some text';
$record['memo'] = 'some longer text';
use org\majkel\dbase\Table;
$dbf = Table::fromFile('some/table.dbf');
foreach ($dbf as $record) {
$record->int_val += 10;
$dbf->update($record); // header is updated everytime
}
use org\majkel\dbase\Table;
$dbf = Table::fromFile('some/table.dbf');
// delete 7th record
$dbf->delete(6);
// undelete 6th record
$dbf->markDelete(5, false);
use org\majkel\dbase\Table;
$dbf = Table::fromFile('some/table.dbf');
// header is updated. Transaction flag is set
$dbf->beginTransaction();
foreach ($dbf as $record) {
$record->int_val += 10;
$dbf->update($record); // header is not written
}
// duplicate last row
$dbf->insert($record); // header is not written
// header is written, transaction flag is cleared, recond count is updated
$dbf->endTransaction();
use org\majkel\dbase\Builder;
use org\majkel\dbase\Format;
use org\majkel\dbase\Field;
$table = Builder::create()
->setFormatType(Format::DBASE3)
->addField(Field::create(Field::TYPE_CHARACTER)->setName('str')->setLength(15))
->addField(Field::create(Field::TYPE_LOGICAL)->setName('bool'))
->addField(Field::create(Field::TYPE_NUMERIC)->setName('num'))
->build('destination.dbf');
for ($i = 1; $i <= 3; ++$i) {
$table->insert([
'str' => "Str $i",
'bool' => false,
'num' => $i,
]);
}
use org\majkel\dbase\Builder;
use org\majkel\dbase\filter\TrimFilter;
use your\CurrencyFilter;
$dbf = Table::fromFile('some/table.dbf');
$dbf->getHeader()->getField('price')
->addFilter(new TrimFilter())
->addFilter(new CurrencyFilter(',', '.'));
foreach ($dbf as $record) {
// ...
}
use org\majkel\dbase\FilterInterface;
use org\majkel\dbase\Field;
class CurrencyFilter extends FilterInterface
{
/** @var string */
private $inputDot;
/** @var string */
private $outputDot;
/**
* @param string $inputDot
* @param string $outputDot
*/
public function __construct($inputDot, $outputDot)
{
$this->inputDot = $inputDot;
$this->outputDot = $outputDot;
}
/**
* From table value to PHP value
*
* @param mixed $value
* @return mixed
*/
public function toValue($value)
{
return str_replace($this->inputDot, $this->outputDot, $value);
}
/**
* From PHP value to table value
*
* @param mixed $value
* @return mixed
*/
public function fromValue($value)
{
return str_replace($this->outputDot, $this->inputDot, $value);
}
/**
* Filter can be applied on string like columns
*
* @param integer $type
* @return boolean
*/
public function supportsType($type)
{
return in_aray($type, [Field::TYPE_CHARACTER, Field::TYPE_MEMO]);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.