/** * Escapes characters in string that hold meaning in Sphinx; except starting and ending double quotes * * @param string $string * * @return string */ private function escape($string) { $s = '%s'; if ($this->isPhrase) { $string = rtrim(ltrim($string, '"'), '"'); $s = '"%s"'; } return sprintf($s, Utils::escapeQueryString($string)); }
public function testEscapeQueryString() { $this->assertEquals('\\$50', Utils::escapeQueryString('$50')); $this->assertEquals('\\&50', Utils::escapeQueryString('&50')); $this->assertEquals('\\(\\$50 between \\@monday \\& tuesday\\) \\= wednesday', Utils::escapeQueryString('($50 between @monday & tuesday) = wednesday')); }