function parseSessions($xml) { $session_array = array(); /* Parse the XML into tags */ $parser = xml_parser_create(); xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); xml_parse_into_struct($parser, $xml, $values, $tags); xml_parser_free($parser); // loop through the structures foreach ($tags as $key => $value) { if ($key == "session") { $molranges = $value; // each contiguous pair of array entries are the // lower and upper range for each molecule definition for ($i = 0; $i < count($molranges); $i += 2) { $offset = $molranges[$i] + 1; $len = $molranges[$i + 1] - $offset; $session_array[] = parseSession(array_slice($values, $offset, $len)); } } else { continue; } } return $session_array; }
****************************************************************/ require_once "class.BEncodeLib.php"; require_once "class.btpdControl.php"; require_once "utils.php"; //########################################################### // Init //########################################################### $globalinfo = getStartupconfig(); $globalinfo["torrentId"] = intval(_isset($_REQUEST, "t", 0)); $globalinfo['page'] = intval(_isset($_REQUEST, 'pg', 0)); $globalinfo["btpdControl"] = new btpdControl($globalinfo["APP_HOME"]); $stdGetFields = array(); //Setup info $setup = tr_sessionAccessor(); $session = parseSession($setup); //Stats /* $globalinfo['stats'] = tr_sessionStats(); */ //########################################################### // Actions //########################################################### if (isset($_REQUEST['list'])) { $tor_IdList = parse_torrent_list($_REQUEST['list']); if (isset($_REQUEST['action-delete'])) { tr_torrentRemove($tor_IdList); Header("Location: " . $globalinfo["scriptIndex"] . "?t=" . $globalinfo["torrentId"] . "&pg=" . $globalinfo["page"]); exit; } else { if (isset($_REQUEST['action-start'])) {