Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Text zerteilen für suche?

Ich bastle gerade an einer suchfunktion für eine MySql Db. Mein problem ist, dass eine eingabe wie

"PHP Tutorial" mysql suche

habe. Jetzt will diesen string bei allen lerzeichen teilen, aber nur auserhalb der hochkomma zeichen.
Am schluss brauche ich folgendes array:

array[0]="PHP Tutorial";
array[1]="mysql";
array[2]="suche";

Das array muss nicht genau diese reihnfolge haben, es muss aber alle diese, und nur diese elemente enthalten.

Kann mir irgend jemand einen denkanstoß geben, wie ich das bewerkstelligen kann?
Wenns um regex geht, wäre es nett wenn das mehr als ein denkanstoß sein könnte.
Wenns ohne regex geht reicht der ungefähre weg.

Hier gehts zum Orginal Eintrag "Text zerteilen für suche?" im Forum

Antworten

Mit strtok und wechselndem Limiter geht das ziemlich einfach:

Code:                   In Zwischenablage kopieren (nur IE)
1">

Ist aber nicht sonderlich fehlertolerent (bei Quote Missmatch - aber das sollte ja eh nicht passieren)


2.

Hallo. Habe mittlerweile herumgebastelt, und habe folgende lösung selbst programmiert:

[PHP]
$suchwort=urldecode($_GET["suchwort"]);

$suchwort=str_replace("+"," ",$suchwort);
$suchwort=str_replace("%"," ",$suchwort);


$explode=explode("\"",$suchwort);
$suchworte[0]="";
for($i=0;$i<count($explode);$i++){

if($i%2==1){
$suchworte[]=$explode[$i];
} else {
$ex=explode(" ",$explode[$i]);
$suchworte=array_merge($suchworte,$ex);
}

}



for($i=0;$i<count($suchworte);$i++){
$suchworte[$i]=str_replace("\\","",$suchworte[$i]);
$suchworte[$i]=str_replace("\"","",$suchworte[$i]);
$suchworte[$i]=str_replace("'","",$suchworte[$i]);


}

$suchworte=array_unique($suchworte);


print_r($suchworte);

[/PHP]


Hier gehts zum Orginal Eintrag "Text zerteilen für suche?" im Forum
 
phpforum.de | Impressum | Handy Bundles