alecpl
2009-02-21 0ff63513c2c172ba9986b5d3f077951b1c47a328
program/include/rcube_shared.inc
@@ -599,4 +599,30 @@
    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;
}
?>