friky.com
← Back to archive

Post

Process search string before sending to a match against

2009-04-23 Agustí Pons Original post

It's Sant Jordi and I want to go home NOW!

but this peace of code will be helpful, how to process a standard search string to do a typical and search for each word.

$text=$search;  if (stripos($text, '"')===false)  {// normal search, there are no "    $text=str_replace('+', '', $text);    $text=str_replace('-', '', $text);    $text=str_replace('*', '', $text);    $text=str_replace('\'', '', $text);    $text=str_replace('"', '', $text);    $text=str_replace('>', '', $text);    $text=str_replace('<', '', $text);      $arr=explode(" ", $text);    $text='';    foreach ($arr as $elem)    {      $text.='+'.$elem.'* ';    }  }

Simply use $search as the input (obviously sanitized) and take $text as output, if there are some double quotes, we simply do nothing assuming an exact match query.

It's not perfect, but works for my actual project.

I don't have more time, happy Sant Jordi to all !