diff --git a/announce.php b/announce.php index bfdd749..ab31341 100644 --- a/announce.php +++ b/announce.php @@ -1,6 +1,7 @@ $val) { - if (!is_int($key)) { - $assoc = true; - break; - } - } - - if ($assoc) { - ksort($var, SORT_REGULAR); - $ret = 'd'; - - foreach ($var as $key => $val) { - $ret .= bencode($key) . bencode($val); - } - return $ret .'e'; - } else { - $ret = 'l'; - - foreach ($var as $val) { - $ret .= bencode($val); - } - return $ret .'e'; - } - } - } else { - do_error('bencode wrong data type'); - } -} - if (!isset($_GET["info_hash"])) { bad_request("No info_hash"); diff --git a/bencoder.php b/bencoder.php new file mode 100644 index 0000000..696ad6c --- /dev/null +++ b/bencoder.php @@ -0,0 +1,64 @@ + $val) { + if (!is_int($key)) { + $assoc = true; + break; + } + } + + if ($assoc) { + ksort($var, SORT_REGULAR); + $ret = 'd'; + + foreach ($var as $key => $val) { + $ret .= bencode($key) . bencode($val); + } + return $ret .'e'; + } else { + $ret = 'l'; + + foreach ($var as $val) { + $ret .= bencode($val); + } + return $ret .'e'; + } + } + } else { + do_error('bencode wrong data type'); + } +} +/* +function bdecode($enc) +{ + if ($endPos = strpos($enc, 'e') == false) { + // string + } + if (!$endPos) { + return null; + } + + $type = substr($enc, 1, 1); + $data = substr($enc, 1, $endPos - 1); + switch ($type) + { + case 'i': return intval($data); + + } +} +*/ +?> \ No newline at end of file