diff options
author | Marcus Boerger <helly@php.net> | 2003-06-22 15:48:44 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2003-06-22 15:48:44 +0000 |
commit | 51dbd3b39efa06c028cef187fecc67758d0d6407 (patch) | |
tree | 517d4419f831e0d2000df4d9c985f4df0c4e20d2 | |
parent | f9477577a4aa12565a920efc94f27cdb3aa32c5c (diff) | |
download | php-git-51dbd3b39efa06c028cef187fecc67758d0d6407.tar.gz |
Adding an array example
-rwxr-xr-x | ext/spl/examples/dba_array.php | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/ext/spl/examples/dba_array.php b/ext/spl/examples/dba_array.php new file mode 100755 index 0000000000..ebbe5a7bac --- /dev/null +++ b/ext/spl/examples/dba_array.php @@ -0,0 +1,79 @@ +<?php + +/* dba array utility + * + * Usage php dba_dump <file> <handler> <key> [<value>] + * + * If <value> is specified then <key> is set to <value> in <file>. + * Else the value of <key> is printed only. + * + * Note: configure with --enable-dba + * + * (c) Marcus Boerger + */ + +class dba_array implements spl_array_access { + private $db; + + function __construct($file, $handler) + { + $this->db = dba_popen($file, "c", $handler); + if (!$this->db) { + throw new exception("Databse could not be opened"); + } + } + + function __destruct() + { + dba_close($this->db); + } + + function get($name) + { + $data = dba_fetch($name, $this->db); + if($data) { + if (ini_get('magic_quotes_runtime')) { + $data = stripslashes($data); + } + return unserialize($data); + } + else + { + return NULL; + } + } + + function set($name, $value) + { + dba_replace($name, serialize($value), $this->db); + return $value; + } + + function exists($name) + { + return dba_exists($name, $this->db); + } +} + +try { + if ($argc > 2) { + $dba = new dba_array($argv[1], $argv[2]); + if ($dba && $argc > 3) { + if ($argc > 4) { + $dba[$argv[3]] = $argv[4]; + } + var_dump(array('Index' => $argv[3], 'Value' => $dba[$argv[3]])); + } + $dba = NULL; + } + else + { + echo "Not enough parameters\n"; + exit(1); + } +} +catch (exception $err) { + var_dump($err); + exit(1); +} +?>
\ No newline at end of file |