Получение данных с базы

Define!!!11

Новичок
Пользователь
13 Авг 2012
7
10
3
82
В данном топе я опишу, как получить данные с GamedBD довольно-таки причудливым образом.
Данная тема очень похожа на тему Botchala "Альтернативное получение", но ни в коем случае нельзя путать мою тему с ней. Данная разработка является моей личной, и делал я ее исключительно сам.
Так вот. GamedBD знает команду "read". То есть, если я в консоли напишу:

PHP:
./gamedbd gamesys.conf read base 32

я прочитаю из таблицы "base" значение с ключом 32 (Аналогично пакету GetRoleBase и, кстати, с той же структурой). Таблицы - это файлы в папке gamedbd/dbhomewdb, где хранятся все данные об игроках, кланах, территориях и прочем.
Но все бы было так просто, если не было так сложно, получение напрямую провести нельзя. Высвечивается поток самых разных буковок и непонятных циферок, которые распарсить нельзя. К тому же функция только с напильником возвращает нужные данные, а не "the decompressed data".

Решение на PHP есть:
PHP:
function GamedBDRead($table, $key){
function _UU($qq) {
$r='';
for ($i=0; $i<strlen($qq);$i+=2) $r.=chr(hexdec($qq{$i}.$qq{$i+1}));
 
return $r;
}
ob_start();
echo passthru("cd /home/server/gamedbd; ./gamedbd gamesys.conf read $table $key 2>&1");
$content=ob_get_contents();
ob_end_clean();
print_r($content=explode("\n", $content));
return _UU(implode("", explode(" ", $content[1])));
}
Функция возвращает бинарные данные из таблицы $table с ключом $key.
 
Последнее редактирование модератором:

Пользователи онлайн

Сейчас на форуме нет ни одного пользователя.

Последние ресурсы

Статистика форума

Темы
3.838
Сообщения
21.197
Пользователи
7.610
Новый пользователь
dts322