diff options
author | alecpl <alec@alec.pl> | 2009-02-21 18:57:47 +0000 |
---|---|---|
committer | alecpl <alec@alec.pl> | 2009-02-21 18:57:47 +0000 |
commit | 0ff63513c2c172ba9986b5d3f077951b1c47a328 (patch) | |
tree | 2c67a8f8fba27f7c01ee8eb19af10d079382e1a6 /program/include/rcube_shared.inc | |
parent | 8a78a16155fb1df7142b9cfa573d318c940b0dae (diff) |
#1485741: fix installer after some last changes
Diffstat (limited to 'program/include/rcube_shared.inc')
-rw-r--r-- | program/include/rcube_shared.inc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc index c1c056109..74bfdbafe 100644 --- a/program/include/rcube_shared.inc +++ b/program/include/rcube_shared.inc @@ -599,4 +599,30 @@ function rc_detect_encoding($string, $failover='') return $result ? $result : $failover; } + +/** + * Explode quoted string + * + * @param string Delimiter expression string for preg_match() + * @param string Input string + */ +function rcube_explode_quoted_string($delimiter, $string) +{ + $result = array(); + $strlen = strlen($string); + + for ($q=$p=$i=0; $i < $strlen; $i++) { + if ($string[$i] == "\"" && $string[$i-1] != "\\") { + $q = $q ? false : true; + } + else if (!$q && preg_match("/$delimiter/", $string[$i])) { + $result[] = substr($string, $p, $i - $p); + $p = $i + 1; + } + } + + $result[] = substr($string, $p); + return $result; +} + ?> |