If you're splitting them up with preg_split(), you can combine them with
implode(). Something like
$foo = ".*" . implode(".*", $words);
Or don't use an array at all. Just replace anything that's not a valid
search character...
$regex = preg_replace("/[^A-Za-z]/", ".*", $search);
J
Kelvin Poon wrote:
> Hi,
>
> I am sorry if this problem is too easy but I just can't figure out a way
> to do this.
>
> I am making a search engine and I would have the user to type a sentence
> to search for.
>
> Let's say it is stored in $search.
>
> My search enginue will bring up a result IF and only if ALL of the words
> in
> $search exist in the result. For example
> if
>
> $search = Vax Useful Commands
>
> Then the result is only true if (eregi(".*Vax.*Useful.*Commands.*",
> 'possible result')) is true
>
> Now, I don't know how many words there are in $search initially. How do I
> do a search like that? I mean if I know $search is 3 words then I can do
>
> $words = preg_split("/ /", $search);
>
> if (eregi(".*words[0].*words[1].*words[2].*", 'possible result')) {
> .....
> }
>
>
> Even if I know how many words there are, everytime the number of words in
> $search can be different.
>
> Can anybody give me any ideas?
> Thanks a lot
>
> Kelvin
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php