Skip to content

Commit 4505159

Browse files
committed
Special handling for HGETALL and some bugfixes
1 parent e8fda3b commit 4505159

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

redis.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,25 @@ function client($host='127.0.0.1', $port=6379, $timeout=NULL)
2020

2121
return function ($cmd) use ($fp)
2222
{
23+
$cmd = trim($cmd);
2324
if ('quit' == strtolower($cmd)) return fclose($fp);
2425
$return = fwrite($fp, _multi_bulk_reply($cmd));
2526
if ($return === FALSE) throw new SocketException();
26-
return _reply($fp);
27+
$reply = _reply($fp);
28+
29+
if ('hgetall' === substr(strtolower($cmd), 0, 7))
30+
{
31+
$reply_count = count($reply);
32+
$hash_reply = array();
33+
for ($i = 0; $i < $reply_count; $i += 2)
34+
{
35+
$hash_reply[$reply[$i]] = $reply[$i+1];
36+
}
37+
38+
return $hash_reply;
39+
}
40+
41+
return $reply;
2742
};
2843
}
2944

@@ -73,7 +88,7 @@ function _reply($fp)
7388
$bulk_reply_count = intval($data);
7489
if ($bulk_reply_count < 0) return NULL;
7590
$multi_bulk_reply = array();
76-
foreach(range(1, $bulk_reply_count) as $i) $multi_bulk_reply[] = _reply();
91+
foreach(range(1, $bulk_reply_count) as $i) $multi_bulk_reply[] = _reply($fp);
7792
return $multi_bulk_reply;
7893

7994
default:

0 commit comments

Comments
 (0)