diff options
| author | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2009-02-13 10:44:49 +0000 |
|---|---|---|
| committer | alec <alec@208e9e7b-5314-0410-a742-e7e81cd9613c> | 2009-02-13 10:44:49 +0000 |
| commit | 7f31d48b27b52b6a8b1aed98d942e342adc2e933 (patch) | |
| tree | 6a1779e111e48765be58966beec461c9a0a7839d /roundcubemail/program/include/main.inc | |
| parent | 0447279f7094657e3b1edc08078e3e3c3703eafe (diff) | |
- Fix multiple recipients input parsing (#1485733)
- added shared rcube_explode_quoted_string() function
git-svn-id: https://svn.roundcube.net/trunk@2291 208e9e7b-5314-0410-a742-e7e81cd9613c
Diffstat (limited to 'roundcubemail/program/include/main.inc')
| -rw-r--r-- | roundcubemail/program/include/main.inc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/roundcubemail/program/include/main.inc b/roundcubemail/program/include/main.inc index 5cc0fb214..5c055740f 100644 --- a/roundcubemail/program/include/main.inc +++ b/roundcubemail/program/include/main.inc @@ -1233,5 +1233,29 @@ class rcube_base_replacer } } +/** + * 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; +} ?> |
