diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2007-09-12 15:32:11 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2007-09-12 15:32:11 +0000 |
commit | e503216834c466de1eb5746d1b2998a8db5de086 (patch) | |
tree | 316a5c451d9188a35a629b457adc697df568a93f /phpBB/includes/functions_jabber.php | |
parent | 01b46eb4e0cc637c0b3440a49a58580133679bb0 (diff) | |
download | forums-e503216834c466de1eb5746d1b2998a8db5de086.tar forums-e503216834c466de1eb5746d1b2998a8db5de086.tar.gz forums-e503216834c466de1eb5746d1b2998a8db5de086.tar.bz2 forums-e503216834c466de1eb5746d1b2998a8db5de086.tar.xz forums-e503216834c466de1eb5746d1b2998a8db5de086.zip |
some tiny fixes...
git-svn-id: file:///svn/phpbb/trunk@8087 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/functions_jabber.php')
-rw-r--r-- | phpBB/includes/functions_jabber.php | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/phpBB/includes/functions_jabber.php b/phpBB/includes/functions_jabber.php index e3edcfc0be..6297dac4bf 100644 --- a/phpBB/includes/functions_jabber.php +++ b/phpBB/includes/functions_jabber.php @@ -695,25 +695,34 @@ class jabber } /** - * parse_data like a="b",c="d",... + * parse_data like a="b",c="d",... or like a="a, b", c, d="e", f=g,... * @param string $data * @access public * @return array a => b ... */ function parse_data($data) { - // super basic, but should suffice $data = explode(',', $data); $pairs = array(); + $key = false; foreach ($data as $pair) { $dd = strpos($pair, '='); + if ($dd) { - $pairs[substr($pair, 0, $dd)] = trim(substr($pair, $dd + 1), '"'); + $key = trim(substr($pair, 0, $dd)); + $pairs[$key] = trim(trim(substr($pair, $dd + 1)), '"'); + } + else if (strpos(strrev(trim($pair)), '"') === 0 && $key) + { + // We are actually having something left from "a, b" values, add it to the last one we handled. + $pairs[$key] .= ',' . trim(trim($pair), '"'); + continue; } } + return $pairs; } |