From 15a90639e1f887189adae25ed7184083fd729991 Mon Sep 17 00:00:00 2001 From: mykola2312 <49044616+mykola2312@users.noreply.github.com> Date: Fri, 18 Mar 2022 14:10:04 +0200 Subject: [PATCH] bencode full decoding implemented: integers, lists, dictionaries and strings --- bencoder.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bencoder.php b/bencoder.php index 6f8e426..15410d4 100644 --- a/bencoder.php +++ b/bencoder.php @@ -62,6 +62,19 @@ function bdecode($enc, &$off = null) while (substr($enc, $off, 1) != 'e') { array_push($result, bdecode($enc, $off)); } + } else if ($type == 'd') { + $off++; + $result = array(); + while (substr($enc, $off, 1) != 'e') { + $key = bdecode($enc, $off); + $value = bdecode($enc, $off); + $result[$key] = $value; + } + } else { + $sep = strpos($enc, ':', $off); + $len = intval(substr($enc, $off, $sep - $off)); + $result = substr($enc, $sep + 1, $len); + $off = $sep + 1 + $len; } return $result;