Reply to Re: [PHP] Breaking up search terms into an array intelligently

Your name:

Reply:


Posted by Robin Vickery on 09/10/05 15:39

On 9/7/05, Paul Groves <paul.groves@oucs.ox.ac.uk> wrote:
> I want to be able to break up a number of search terms typed into an input
> box into array, simple enough one would think, just use explode, e.g
>
>
> $array = explode(" ", $string);
>
>
> But what if I want to be able to cope with search terms seperated by > 1
> space (a common typing error)? This should work:
>
>
> function enhanced_explode($string) {
> $array = preg_split ("/\s+/", $string);
> return ($array);
> }
>
>
> But what if I want to allow "Google"-type search parameters, so that
> something like the following is split into 3 search terms?:
> firstsearchterm "second search term" thirdsearchterm
> The following code will do the trick, but is slow and doesn't allow for
> multiple spaces as the delimiter, nor the possibility of multiple delimiters
> (e.g. " ", "+", "," etc.)

<?php
$search ='first -second +third "fourth \"fifth\"" -"sixth seventh"
eighth';

$re = '/[+-]?("(?:[^"\\\\]|\\\\.)*"|[^\s]+)/';

preg_match_all($re, $search, $terms);

print_r($terms);
?>

Array
(
[0] => Array
(
[0] => first
[1] => -second
[2] => +third
[3] => "fourth \"fifth\""
[4] => -"sixth seventh"
[5] => eighth
)

[1] => Array
(
[0] => first
[1] => second
[2] => third
[3] => "fourth \"fifth\""
[4] => "sixth seventh"
[5] => eighth
)

)

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация