From: Marcus Boerger Date: Sun, 22 Jun 2003 15:48:44 +0000 (+0000) Subject: Adding an array example X-Git-Tag: RELEASE_1_0_2~95 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=51dbd3b39efa06c028cef187fecc67758d0d6407;p=php Adding an array example --- 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 @@ + [] + * + * If is specified then is set to in . + * Else the value of 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