2003-06-22 15:48:44 +00:00
|
|
|
<?php
|
|
|
|
|
2003-12-04 19:39:46 +00:00
|
|
|
/** dba array utility
|
2003-06-22 15:48:44 +00:00
|
|
|
*
|
2003-12-04 19:39:46 +00:00
|
|
|
* Usage php dba_array.php <file> <handler> <key> [<value>]
|
2003-06-22 15:48:44 +00:00
|
|
|
*
|
|
|
|
* 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
|
|
|
|
*
|
2003-12-04 19:39:46 +00:00
|
|
|
* (c) Marcus Boerger, 2003
|
2003-06-22 15:48:44 +00:00
|
|
|
*/
|
|
|
|
|
2003-12-04 19:39:46 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2003-11-22 20:51:15 +00:00
|
|
|
class DbaArray implements ArrayAccess {
|
2003-06-22 15:48:44 +00:00
|
|
|
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);
|
|
|
|
}
|
2003-11-22 20:51:15 +00:00
|
|
|
//return unserialize($data);
|
|
|
|
return $data;
|
2003-06-22 15:48:44 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return NULL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function set($name, $value)
|
|
|
|
{
|
2003-11-22 20:51:15 +00:00
|
|
|
//dba_replace($name, serialize($value), $this->db);
|
|
|
|
dba_replace($name, $value, $this->db);
|
2003-06-22 15:48:44 +00:00
|
|
|
return $value;
|
|
|
|
}
|
|
|
|
|
|
|
|
function exists($name)
|
|
|
|
{
|
|
|
|
return dba_exists($name, $this->db);
|
|
|
|
}
|
2003-11-22 20:51:15 +00:00
|
|
|
|
|
|
|
function del($name)
|
|
|
|
{
|
|
|
|
return dba_delete($name, $this->db);
|
|
|
|
}
|
2003-06-22 15:48:44 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
if ($argc > 2) {
|
2003-11-22 20:51:15 +00:00
|
|
|
$dba = new DbaArray($argv[1], $argv[2]);
|
2003-06-22 15:48:44 +00:00
|
|
|
if ($dba && $argc > 3) {
|
|
|
|
if ($argc > 4) {
|
|
|
|
$dba[$argv[3]] = $argv[4];
|
|
|
|
}
|
|
|
|
var_dump(array('Index' => $argv[3], 'Value' => $dba[$argv[3]]));
|
|
|
|
}
|
2003-11-22 20:51:15 +00:00
|
|
|
unset($dba);
|
2003-06-22 15:48:44 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
echo "Not enough parameters\n";
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (exception $err) {
|
|
|
|
var_dump($err);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
?>
|