On 3 Mar 2005 20:26:20 +0100, Tommy Ipsen <tipsen@imada.sdu.dk> wrote:
>//fjern alt andet end bogstaver ("words") og tal
>$Soegeord = preg_replace('/[^\w\d]/', ' ', $Soegeord);
>//lav 2 eller flere whitespaces om til ét mellemrum
>$Soegeord = preg_replace('/\s\s+/', ' ', $Soegeord);
>
>Ser du nogen problemer i ovenstående - det er tiltænkt som en filtrering
>af de søgeord en bruger kan komme med!
Næeh, ikke ud over at efter den første preg_replace har du alligevel
kun mellemrum af whitespaces. Du kan måske nøjes med:
$Soegeord = preg_replace('/[^\w\d]+/', ' ', $Soegeord);
... så bliver alle ikke-ord/tal i træk (plusset betyder ét eller flere)
alligevel lavet om til ét mellemrum.
Derudover kan du fjerne \d, for:
http://www.php.net/manual/en/reference.pcre.pattern.syntax.php
A "word" character is any letter or digit or the underscore character,
that is, any character which can be part of a Perl "word".
Så du kan evt. bare have følgende:
$Soegeord = preg_replace('/[^\w]+/', ' ', $Soegeord);
--
- Peter Brodersen