public static function decode($str, $options = 0) { if (!is_string($str)) { return self::decode_error('Input data must be string in order to decode, "' . gettype($str) . '" given'); } if (strlen($str) == 0) { return self::decode_error('Input string empty'); } self::$bdata_position = 0; self::$bdata_depth = 0; self::$ext_valid = false; self::$bdata_length = strlen($str); self::$bdata = $str; unset($str); if ($options & self::OPTION_EXTENDED_VALIDATION) { self::$ext_valid = true; } $data = self::bdecode(); if (self::$ext_valid) { if (self::$bdata_position < self::$bdata_length) { return self::decode_error('Garbage data at end'); } } self::$bdata_position = 0; self::$bdata_length = 0; self::$bdata = ''; self::$bdata_depth = 0; self::$ext_valid = false; return $data; }
public static function decode($str, $options = 0) { if (empty($str)) { return false; } self::$bdata_position = 0; self::$bdata_depth = 0; self::$ext_valid = false; self::$bdata_length = strlen($str); self::$bdata = $str; unset($str); if ($options & self::OPTION_EXTENDED_VALIDATION) { self::$ext_valid = true; } $data = self::bdecode(); if (self::$ext_valid) { if (self::$bdata_position < self::$bdata_length) { return self::decode_error('Garbage data at end'); } } self::$bdata_position = 0; self::$bdata_length = 0; self::$bdata = ''; self::$bdata_depth = 0; self::$ext_valid = false; return $data; }