Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Suchfunktion - nach mehrer Begriffe suchen

Frage Entwicklung PHP

Mitglied: ThermoTubbie

ThermoTubbie (Level 1) - Jetzt verbinden

16.11.2005, aktualisiert 18.11.2005, 4710 Aufrufe, 4 Kommentare

Hi,
ich habe mir eine Suchfunktion für meine Website gebastelt, die auf eine DB zugreift. Die Suche funktioniert auch perfekt und bin auch mächtig stolz drauf Aber wie das öfters so ist, ist die halt noch nicht ganz perfekt.
und zwar fehlt noch, dass der Benutzer nach 2 Begriffen suchen kann, also das was google auch kann.

Wie das von der Logik alles ablaufen soll/kann ist mir klar. Nur ich finde die passenden Funktionen nicht...
Ich brauche eine die erkennt ob eine " (Leerzeichen)" oder ein"+" im Suchstring enthalten oder noch besser den String an diesen Stellen gleich teilt.
In Java gibt es paar nette Stringfunktionen die das können, daher hoffe ich mal das es die in php auch gibt.
Hab mir dazu http://www.php.net/quickref.php angeschaut nur leider wurde ich von der Menge erschlagen und habe keine Ahnung welche es davon sein könnte(n)....

Ich hoffe ihr könnt mir weiterhelfen!

mfg
ThermoTubbie /Martin
Mitglied: Nippie
16.11.2005 um 23:08 Uhr
Moin,
Könntest du nicht einfach die Möglichen Eingaben der User mit einen simplen "if" tag einschränken???

Ich hab nicht wirklich Ahnung davon...aber das müsste doch gehen oda???

MFG nippmaster
Bitte warten ..
Mitglied: ThermoTubbie
17.11.2005 um 14:07 Uhr
Könntest du nicht einfach die
Möglichen Eingaben der User mit einen
simplen "if" tag
einschränken???

Hi, nippmaster
ja einschränken schon, nur ich will ja genau das Gegenteil nämlich die Eingabe "erweitern". Ein Leerzeichen oder eine + kann ich erkenne "if(strpos(zuDurchsuchendeString,Zeichen)" nur das Problem was ich habe ist das ich aus einem String zwei machen muss! und das dann noch an der Stelle wo das Zeichen gefunden wurde.

Also mal pseudoCode zu Leerzeichen erkennen
if(strpos(zuDurchsuchendeString," "))
{
int StelleAnDerZeicheIst = gesuchteFunktion(zuDurchsuchendeString, Zeichen);
String neuerString1= 2teGesuchteFunktion(stelleABWohgetrenntWird,String);
String neuerString2 = 2teGesuchteFunktion(stelleABWohgetrenntWird,String);
}



mfg
ThermoTubbie
Bitte warten ..
Mitglied: Guenni
17.11.2005 um 23:14 Uhr
@ThermoTubbie

Hi,

dazu kannst du z. B. die Funktion split(suchmuster,zeichenkette) benutzen.

Sie durchsucht die Zeichenkette nach einem Suchmuster und übergibt die
Teile als array einer Variablen.

$string="eins+zwei drei";
$array=split("[\" \"+]",$string);
for($x=0;$x*count($array);$x++){ Ersetze das Sternchen durch <
echo $array[$x]."*br>";
Ersetze das Sternchen durch <
}

Das Suchmuster "[\" \"+]" sucht nach einem Leerzeichen oder dem Pluszeichen.

Die Anführungszeichen in den eckigen Klammern(sie bedeuten das Leerzeichen)
müssen durch den Backslash maskiert werden, deshalb sieht das ein wenig
sonderbar aus.

Ausgabe:

eins

zwei

drei

Würdest du das Pluszeichen aus dem Suchstring entfernen, so würde nur nach dem
Leerzeichen gesucht.

Ausgabe:

eins+zwei

drei

Gruß
Günni
Bitte warten ..
Mitglied: ThermoTubbie
18.11.2005 um 15:06 Uhr
HI Günni,
vielen Dank !!! Das werde ich mal testen, aber es ist genau das was ich gesucht habe!
mfg
ThermoTubbie
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
In einer Matroska-Datei eine Audio-Spur suchen (1)

Frage von Spider.Mann zum Thema Batch & Shell ...

Windows Server
Powershell logfile nach Datei suchen (2)

Frage von krischeu zum Thema Windows Server ...

Microsoft
Im ordner nach dateien aus excel liste suchen (2)

Frage von tioloco zum Thema Microsoft ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...