Bei der Verarbeitung von Zeichenfolgen in PHP ist häufig herauszufinden, ob ein Substring in einer anderen Zeichenfolge vorhanden ist. Für Saiten, die Multibyte -Zeichen (wie Chinesisch, Japanisch, Koreanisch usw.) enthalten, können die Verwendung normaler String -Funktionen (wie STRSTR oder STRPOS ) verstümmelte Code oder Erkennungsfehler verursachen. Zu diesem Zeitpunkt können Sie die Multi-Byte-Safe-Funktion mb_stristry verwenden.
MB_STRSTR ist eine Funktion, die von der PHP -Multibyte -String -Erweiterung (MBString) bereitgestellt wird, um ein Substring zu finden, das zum ersten Mal in einer Zeichenfolge angezeigt wird. Es ähnelt Strrist , unterstützt jedoch die Multibyte-Codierung und verwendet standardmäßig UTF-8.
Die Funktionsdefinition lautet wie folgt:
mb_stristr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null): string|false
$ haystack : Die ursprüngliche Zeichenfolge, nach der man suchen muss;
$ nadel : das zu finden sein;
$ vor_needle (optional): Geben Sie das Teil vor der Nadel zurück.
$ codieren (optional): Zeichencodierung, Standardeinstellung ist interne Codierung (normalerweise UTF-8);
Rückgabewert: Wenn gefunden, geben Sie die verbleibende Zeichenfolge (oder ein Präfixteil) zurück und geben Sie bei gefundenen Fehlern zurück.
Nehmen wir an, wir möchten herausfinden, ob eine URL ein bestimmtes Schlüsselwort enthält und das Teil, das mit diesem Schlüsselwort beginnt:
<?php
$url = "https://gitbox.net/docs/php/mbstring-guide";
$result = mb_stristr($url, "php");
if ($result !== false) {
echo "Fand das Substring,Das Ergebnis ist:$result";
} else {
echo "Kein Substring gefunden";
}
?>
Ausgabe:
Fand das Substring,Das Ergebnis ist:php/mbstring-guide
Erläuterung: MB_strist hat den "PHP" erfolgreich gefunden, der zum ersten Mal erschien und die Zeichenfolge ab diesem Teil zurückgegeben hat.
Manchmal kümmern wir uns mehr um den Teil vor dem Substring, z. B. den Hauptweg:
<?php
$url = "https://gitbox.net/docs/php/mbstring-guide";
$result = mb_stristr($url, "php", true);
if ($result !== false) {
echo "Das Teil vor dem Schlüsselwort ist:$result";
} else {
echo "Kein Substring gefunden";
}
?>
Ausgabe:
Das Teil vor dem Schlüsselwort ist:https://gitbox.net/docs/
Wenn der dritte Parameter wahr ist, gibt MB_Stristr den Inhalt vor der Nadel zurück.
Angenommen, wir befassen uns mit einem Satz, der Chinesisch enthält:
<?php
$text = "Willkommengitbox.net,Das ist ausgezeichnetPHPRessourcenbibliothek。";
$result = mb_stristr($text, "php");
if ($result !== false) {
echo "Gefunden:$result";
} else {
echo "Es wurde kein passender Inhalt gefunden";
}
?>
Beachten Sie, dass "PHP" hier eine von Fall unempfindliche Suche ist, sodass sogar "PHP" erfolgreich übereinstimmen kann.
MB_STRSTR ist unempfindlich, während Mb_strpos Fallempfindlichkeit ist;
MB_STRSTR gibt das passende Substring und seine nachfolgenden Teile zurück, während MB_STRPOS den Ort zurückgibt.
Der wichtigste Punkt ist, dass MB_STRISTER Multi-Byte-Zeichen unterstützt, um chinesische verstümmte Code zu vermeiden.
MB_STRSTR ist ein leistungsstarkes Werkzeug zum Umgang mit Aufgaben zum Auffinden von Substrings in Multibyte-Saiten, insbesondere in UTF-8-Codierungsumgebungen. Die Syntax ist einfach und funktional und ideal, um wichtige Teile einer Saite schnell zu lokalisieren und zu extrahieren.
Wenn Sie PHP -Anwendungen entwickeln, insbesondere wenn Sie sich mit chinesischen Inhalten, URL -Pfaden oder Benutzereingaben befassen, sollten Sie die Verwendung von MB_stristr vor Priorität geben, was die Probleme des Zeichenkürzungen und des verstümmelten Codes effektiv vermeiden kann.