Annotation of embedaddon/php/ext/spl/examples/dbaarray.inc, revision 1.1.1.1
1.1 misho 1: <?php
2:
3: /** @file dbaarray.inc
4: * @ingroup Examples
5: * @brief class DbaArray
6: * @author Marcus Boerger
7: * @date 2003 - 2005
8: *
9: * SPL - Standard PHP Library
10: */
11:
12: if (!class_exists("DbaReader", false)) require_once("dbareader.inc");
13:
14: /** @ingroup Examples
15: * @brief This implements a DBA Array
16: * @author Marcus Boerger
17: * @version 1.0
18: */
19: class DbaArray extends DbaReader implements ArrayAccess
20: {
21:
22: /**
23: * Open database $file with $handler in read only mode.
24: *
25: * @param file Database file to open.
26: * @param handler Handler to use for database access.
27: */
28: function __construct($file, $handler)
29: {
30: $this->db = dba_popen($file, "c", $handler);
31: if (!$this->db) {
32: throw new exception("Databse could not be opened");
33: }
34: }
35:
36: /**
37: * Close database.
38: */
39: function __destruct()
40: {
41: parent::__destruct();
42: }
43:
44: /**
45: * Read an entry.
46: *
47: * @param $name key to read from
48: * @return value associated with $name
49: */
50: function offsetGet($name)
51: {
52: $data = dba_fetch($name, $this->db);
53: if($data) {
54: if (ini_get('magic_quotes_runtime')) {
55: $data = stripslashes($data);
56: }
57: //return unserialize($data);
58: return $data;
59: }
60: else
61: {
62: return NULL;
63: }
64: }
65:
66: /**
67: * Set an entry.
68: *
69: * @param $name key to write to
70: * @param $value value to write
71: */
72: function offsetSet($name, $value)
73: {
74: //dba_replace($name, serialize($value), $this->db);
75: dba_replace($name, $value, $this->db);
76: return $value;
77: }
78:
79: /**
80: * @return whether key $name exists.
81: */
82: function offsetExists($name)
83: {
84: return dba_exists($name, $this->db);
85: }
86:
87: /**
88: * Delete a key/value pair.
89: *
90: * @param $name key to delete.
91: */
92: function offsetUnset($name)
93: {
94: return dba_delete($name, $this->db);
95: }
96: }
97:
98: ?>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>