Suchen
Inside Forum
Nützliche Links
Werbung
phpforum.de Tipp
PHP Jobs
 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 
PHP Test



Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 27.07.2006, 14:36
tScheckSn tScheckSn ist offline
Engagierter Besucher
 
Registriert seit: 13.12.2002
Ort: Herzogenburg - AT
Beiträge: 399
tScheckSn eine Nachricht über ICQ schicken
Standard

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.
__________________
Die rechtschriebfehler sind mit voller Absicht gemacht, und dienen zur belustigung der Leser.
Mit Zitat antworten
  #2  
Alt 27.07.2006, 15:21
Rana Rana ist offline
Engagierter Besucher
 
Registriert seit: 22.12.2004
Beiträge: 6.441
Standard

Mit strtok und wechselndem Limiter geht das ziemlich einfach:

PHP Quellcode:
<?php
        $str = '"PHPTutorial" mysql suche';

        $delim = ' ';
        for ($token = strtok($str, $delim); $token !== false; $token = strtok($delim)) {
                if ($delim == '"') {
                        $array[] = substr($save,1).' '.$token;
                        $delim = ' ';

                        continue;
                }

                if ($token{0} == '"') {
                        if ($token{strlen($token)-1} == '"') {
                                $array[] = substr($token, 1, strlen($token)-2);
                        }
                        else {
                                $delim = '"';
                                $save = $token;
                        }

                        continue;
                }

                $array[] = $token;
        }

        echo "<pre>";
        print_r($array);
        echo "</pre>";
?>
Ist aber nicht sonderlich fehlertolerent (bei Quote Missmatch - aber das sollte ja eh nicht passieren)
Mit Zitat antworten
  #3  
Alt 27.07.2006, 15:48
tScheckSn tScheckSn ist offline
Engagierter Besucher
 
Registriert seit: 13.12.2002
Ort: Herzogenburg - AT
Beiträge: 399
tScheckSn eine Nachricht über ICQ schicken
Standard

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

PHP Quellcode:
$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);
__________________
Die rechtschriebfehler sind mit voller Absicht gemacht, und dienen zur belustigung der Leser.
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
url auslesen und mit explode zerteilen... spanienfoeck PHP 8 17.11.2006 12:33
Text-Suche optimieren poncho Datenbanken 4 06.07.2006 13:53
Wort zerteilen Sancho PHP 1 24.05.2006 15:34
Suche Text im String wunschtacho PHP 14 05.05.2006 15:04
Suche Funktion Text Speichern Unter... Tealc PHP 5 21.03.2005 09:34


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:18 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC