public static function fromString($string, array $info) { $options = new Tracker_Options(); $options->info = $info; $parts = preg_split('/\\s*,\\s*/', trim($string)); foreach ($parts as $key => $value) { if (empty($value)) { continue; } if ($field = $options->getParamDefinitionFromIndex($key)) { if (isset($field['count']) && $field['count'] == '*') { // Count is last, always $options->setParam($field['key'], array_values(array_slice($parts, $key))); break; } elseif (isset($field['separator'])) { $options->setParam($field['key'], explode($field['separator'], $value)); } else { $options->setParam($field['key'], $value); } } } return $options; }