1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<?php
/** dba array utility
*
* Usage php dba_array.php <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, 2003
*/
if ($argc < 4) {
echo <<<EOF
Usage: php ${_SERVER['PHP_SELF']} <file> <handler> <key> [<value>]
If <value> is specified then <key> is set to <value> in <file>.
Else the value of <key> is printed only.
EOF;
exit(1);
}
class DbaArray implements ArrayAccess {
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);
return $data;
}
else
{
return NULL;
}
}
function set($name, $value)
{
//dba_replace($name, serialize($value), $this->db);
dba_replace($name, $value, $this->db);
return $value;
}
function exists($name)
{
return dba_exists($name, $this->db);
}
function del($name)
{
return dba_delete($name, $this->db);
}
}
try {
if ($argc > 2) {
$dba = new DbaArray($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]]));
}
unset($dba);
}
else
{
echo "Not enough parameters\n";
exit(1);
}
}
catch (exception $err) {
var_dump($err);
exit(1);
}
?>
|