Aktueller Standort: Startseite> Neueste Artikel> Die grundlegende Logik der Fuzzy -Suche mit Stripos

Die grundlegende Logik der Fuzzy -Suche mit Stripos

M66 2025-05-31

Bei der Entwicklung von Webanwendungen müssen wir häufig eine große Datenmenge suchen. Für gewöhnliche genaue Übereinstimmungen können Strpos oder andere String -Funktionen verwendet werden. Wenn wir jedoch Fuzzy -Suchanfragen durchführen müssen, bietet PHP eine sehr praktische Funktion - Stripos . Diese Funktion ermöglicht es uns, den Ort eines Substrings in einer Zeichenfolge zu ermitteln, und ist bei der Suche von Fall unempfindlich.

1. Grundprinzipien der Stripos -Funktion

Die Stripos -Funktion wird verwendet, um zu finden, wo eine Zeichenfolge (Substring) zuerst in einer anderen Zeichenfolge erscheint. Im Gegensatz zur STRPOS -Funktion ignoriert Strpos den Fall bei der Suche. Dies bedeutet, dass Stripos die Übereinstimmung korrekt finden kann, unabhängig davon, ob die Zielzeichenfolge im Groß- oder Kleinbuchstaben ist.

Funktionssyntax

 stripos(string $haystack, string $needle, int $offset = 0): int|false
  • Haystack : Die Zielzeichenfolge, nach der Sie suchen müssen.

  • Nadel : Das Substring zu finden.

  • Offset (optional): Starten Sie die Suche von Wo in der Zielzeichenfolge, die Standardeinstellung ist 0 (starten Sie von vorne).

Wenn eine Übereinstimmung gefunden wird, gibt Stripos die Startposition (Indexposition) des passenden Substrings zurück und falls nicht gefunden, falsch .

2. Beispiel für Fuzzy -Suchanwendung

Angenommen, wir haben eine Datenbank, in der E -Mail -Adressen für mehrere Benutzer gespeichert werden. Wir hoffen, dass wenn ein Benutzer ein Suchschlüsselwort eingibt, alle E -Mail -Adressen im Zusammenhang mit dem Keyword über Fuzzy -Matching gefunden werden können.

Hier ist ein einfaches PHP -Beispiel, das zeigt, wie die Fuzzy -Suche mit Stripos implementiert wird:

 <?php
// Suchschlüsselwörter, die von Benutzern eingegeben wurden
$searchKeyword = "example";

// Angenommen, es gibt eine Reihe von E -Mail -Adressen
$emailList = [
    "user1@m66.net",
    "user2@m66.net",
    "contact@m66.net",
    "admin@example.com",
    "test@example.com"
];

// Speichern Sie die passenden Ergebnisse
$matchingEmails = [];

// Durch das E -Mail -Adress -Array iterieren,Führen Sie eine Fuzzy -Suche durch
foreach ($emailList as $email) {
    if (stripos($email, $searchKeyword) !== false) {
        $matchingEmails[] = $email;
    }
}

// Ausgangsübereinstimmende Ergebnisse
echo "Matchierte E -Mail -Adresse:\n";
foreach ($matchingEmails as $email) {
    echo $email . "\n";
}
?>

Code Parsen:

  1. Wir definieren ein Search -Keyword $ SearchKeyword und gehen davon aus, dass wir eine Reihe von E -Mail -Adressen $ Emaillist haben.

  2. Verwenden Sie, um jede E -Mail -Adresse zu iterieren und Stripos für Fuzzy -Matching anzurufen. Wenn ein Match gefunden wird, wird die E -Mail -Adresse dem $ matchingemails -Array hinzugefügt.

  3. Schließlich drucken wir alle passenden E -Mail -Adressen aus.

Im obigen Beispiel ignoriert Stripos den Fall und kann effektiv E -Mail -Adressen mit Schlüsselwörtern finden.

3. Anwendungsszenarien

Die Stripos -Funktion ist für viele Fuzzy -Suchszenarien geeignet. Zu den allgemeinen Anwendungen gehören:

  • Suchmaschinen : Suchen Sie Dokumente, Inhalte oder Datensätze, die die von den Benutzern eingegebenen Schlüsselwörter enthalten.

  • Protokollanalyse : Finden Sie bestimmte Schlüsselwörter oder Fehlermeldungen in einer großen Anzahl von Protokolldateien.

  • Inhaltsfilterung : Filtern Sie unnötige Inhalte heraus oder führen Sie die Inhaltsüberprüfung basierend auf bestimmten Schlüsselwörtern durch.

4.. Dinge zu beachten

  1. Leistungsprobleme : Obwohl die SCRIPOS -Funktion sehr bequem ist, kann der Datenvolumen die Leistung beeinflussen, wenn das Datenvolumen sehr groß ist. Erwägen Sie, die Volltextfunktion oder die Caching-Technologie der Datenbank zu verwenden, um die Effizienz zu verbessern.

  2. Matching-Methode : Stripos ist von Fall unempfindlich, aber wenn Sie Fallempfindlichkeit sein müssen, können Sie die STRPOS -Funktion verwenden.

  3. Match -Position : Stripos gibt die Startposition des Spiels zurück. Wenn Sie detailliertere Übereinstimmungsinformationen erhalten müssen, können Sie sie in Kombination mit anderen Funktionen verwenden.