Annotation of embedaddon/php/ext/spl/examples/dbaarray.inc, revision 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>