On Fri, 2007-10-19 at 09:48 -0700, Kevin Murphy wrote: > I'm trying to create an advanced search feature for my site, and I > have it mostly working the way I want. I take whatever search term > ($searchkey) that the user submits, explodes if off any spaces > between words, and then use that to search for each word separately. > > $keys = explode(" ",$searchkey); > > So the search phrase of: > > Dog Cat Horse > > would output : > > Array > ( > [0] => Dog > [1] => Cat > [2] => Horse > ) > > However, I would like to add the ability to have phrases in there > indicated by " marks. So, if the search phrase was this: > > "Dog Cat" Horse > > It would output: > > Array > ( > [0] => Dog Cat > [1] => Horse > ) > > My concept to solve this is right before I explode the keys as above, > to replace any spaces within " marks with a garbage string of > characters (say XXXXXXXXXX) using a regular expression, and then > later replace it back with a space. However, I suck at regular > expressions and can't figure it out. > > Anyone have a way for me to accomplish this with a regular expression > or with another method? <?php $foo = '"dog cat" horse mouse "tiger fish"'; if( preg_match_all( '/[[:space:]]+(("[^"]*")|([^[:space:]]+))/', ' '.$foo, $bits ) ) { print_r( $bits ); } ?> Cheers, Rob. -- ........................................................... SwarmBuy.com - http://www.swarmbuy.com Leveraging the buying power of the masses! ........................................................... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php