aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/functions_jabber.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2007-09-12 15:32:11 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2007-09-12 15:32:11 +0000
commite503216834c466de1eb5746d1b2998a8db5de086 (patch)
tree316a5c451d9188a35a629b457adc697df568a93f /phpBB/includes/functions_jabber.php
parent01b46eb4e0cc637c0b3440a49a58580133679bb0 (diff)
downloadforums-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.php15
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;
}