X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=BotLoader%2Fsaxdb.php;fp=BotLoader%2Fsaxdb.php;h=0000000000000000000000000000000000000000;hp=f60d65e64205fd1f820ed8a8786bd02c5cb27952;hb=316aa700bd3e2e0019b8e3f10b543b49b0f77f02;hpb=74fcc85514c9bd0a4a8dfbd909d9555a9f1ee5b8 diff --git a/BotLoader/saxdb.php b/BotLoader/saxdb.php deleted file mode 100644 index f60d65e..0000000 --- a/BotLoader/saxdb.php +++ /dev/null @@ -1,160 +0,0 @@ -database = $this->parseDB($db); - } - } - - public function writeDB($name) { - $fp = fopen($name, "w"); - $db = $this->serializeDB($this->database); - fwrite($fp, $db); - fclose($fp); - } - - private function parseDB($db) { - $parserflags = 0; - $openblocks = 0; - $buffer = ""; - $cache = array(); - $output = array(); - for($i = 0; $i < strlen($db); $i++) { - if(($parserflags & self::PARSER_ISBLOCK) && $db[$i] != "{" && $db[$i] != "}") { - $buffer .= $db[$i]; - continue; - } - if(($parserflags & self::PARSER_ISSTRING) && $db[$i] != "\"") { - $buffer .= $db[$i]; - continue; - } - if($parserflags & self::PARSER_ISESCAPED) { - $buffer .= $db[$i]; - $parserflags &= ~self::PARSER_ISESCAPED; - continue; - } - switch($db[$i]) { - case "\\": - $parserflags |= self::PARSER_ISESCAPED; - break; - case "\"": - if($parserflags & self::PARSER_ISSTRING) { - $parserflags &= ~self::PARSER_ISSTRING; - if($parserflags & self::PARSER_STRING_LIST) { - $cache['list'][] = $buffer; - } else if($parserflags & self::PARSER_EXPECT_VALUE) { - //we've got a full entry - $output[$cache['name']] = $buffer; - $parserflags &= ~self::PARSER_EXPECT_VALUE; - } else { - //we've only got the name of the next entry - $cache['name'] = $buffer; - $parserflags |= self::PARSER_EXPECT_VALUE; - } - } else { - $buffer = ""; //clear the buffer - $parserflags |= self::PARSER_ISSTRING; - } - break; - case "{": - //block (it must be a value) - if($parserflags & self::PARSER_ISBLOCK) { - $openblocks++; - $buffer .= $db[$i]; - } else { - $parserflags |= self::PARSER_ISBLOCK; - $buffer = ""; - } - break; - case "}": - if($parserflags & self::PARSER_ISBLOCK) { - $openblocks--; - if($openblocks == -1) { - $parserflags &= ~self::PARSER_ISBLOCK; - if($parserflags & self::PARSER_EXPECT_VALUE) { - $output[$cache['name']] = $this->parseDB($buffer); - $parserflags &= ~self::PARSER_EXPECT_VALUE; - } - } else { - $buffer .= $db[$i]; - } - } - break; - case "(": - if(!($parserflags & self::PARSER_STRING_LIST)) { - $cache['list'] = array(); - $parserflags |= self::PARSER_STRING_LIST; - } - break; - case ")": - if(($parserflags & self::PARSER_STRING_LIST)) { - $parserflags &= ~self::PARSER_STRING_LIST; - if($parserflags & self::PARSER_EXPECT_VALUE) { - $output[$cache['name']] = $cache['list']; - $parserflags &= ~self::PARSER_EXPECT_VALUE; - } - } - break; - default: - $buffer .= $db[$i]; - break; - } - } - return $output; - } - - private function serializeDB($db, $dbstring = "") { - foreach($db as $name => $value) { - if(!is_array($value) && !is_string($value) && !is_numeric($value)) continue; - $dbstring .= "\"".str_replace("\"","\\\"", $name)."\""; - if(is_array($value)) { - $dbstring .= "{"; - $dbstring .= $this->serializeDB($value, $dbstring); - $dbstring .= "}"; - } else { - $dbstring .= "\"".str_replace("\"","\\\"", $value)."\""; - } - } - return $dbstring; - } - -} - -?> \ No newline at end of file