Advertisement
  1. Code
  2. PHP

Wie man mit PHP überprüft, ob ein String eine weitere Teilzeichenfolge enthält

by
Read Time:5 minsLanguages:

German (Deutsch) translation by Ines Willenbrock (you can also view the original English article)

Wenn ich mit Strings in PHP arbeite, wird es oftmals wichtig zu überprüfen, ob eine Zeichenfolge eine andere Teilzeichenfolge enthält. PHP hat viele Funktionen, die Ihnen helfen, Strings so zu manipulieren, wie Sie möchten. Wir werden heute einige dieser Funktionen verwenden, um zu erfahren, wie Sie überprüfen können, ob eine Zeichenfolge eine bestimmte Teilzeichenfolge enthält.

Verwenden neuer Funktionen in PHP 8

In PHP 8 wurden drei neue Funktionen hinzugefügt, die uns helfen herauszufinden, ob eine Zeichenkette eine weitere Teilzeichenkette enthält. Bitte beachten Sie, dass alle diese Funktionen zwischen Groß- und Kleinschreibung unterscheiden und die Prüfung auf das Vorhandensein einer leeren Teilzeichenkette mit ihnen immer true zurückgibt.

  1. str_contains() überprüft, ob eine Zeichenfolge eine bestimmte Teilzeichenfolge enthält.
  2. str_end_width() überprüft, ob eine Zeichenfolge mit einer bestimmten Teilzeichenfolge endet.
  3. str_starts_with() überprüft, ob eine Zeichenfolge mit einer bestimmten Teilzeichenfolge beginnt.

Wie bereits erwähnt, führen diese Funktionen eine Prüfung der Übereinstimmung unter Berücksichtigung der Groß-/Kleinschreibung durch. Sie können auch eine Übereinstimmung ohne Groß-Kleinschreibung mit ihnen ausführen, indem Sie zuerst sowohl die Zeichenfolge als auch die Teilzeichenfolge mithilfe von strtolower() oder strtoupper() in dieselbe Groß-/Kleinschreibung konvertieren.

Diese Funktionen sind ideal, wenn Sie keine zusätzlichen Informationen über die Teilzeichenfolgen wie ihre Position erhalten möchten. Personen, die zusätzliche Informationen über die Übereinstimmung benötigen, sollten die folgenden Funktionen verwenden.

Verwenden von strpos() und stripos()

Sie können die PHP-Funktion strpos() verwenden, um die Position des ersten Auftretens eines Subtrings in einer Zeichenfolge zu bekommen. Die Funktion gibt false zurück, wenn sie die Teilzeichenfolge nicht finden kann.

Wenn Sie strpos() verwenden, um nach einer Teilzeichenfolge zu suchen, stellen Sie sicher, dass Sie den strikten Ungleichheitsoperator verwenden. Dies liegt daran, dass die von strpos() zurückgegebene Position mit 0 beginnt und 0 auch mit false gleichgesetzt werden kann. Wenn Sie eine reguläre Gleichheitsprüfung verwenden, erhalten Sie falsche Negativergebnisse, wenn sich die Teilzeichenfolge direkt am Anfang der Hauptzeichenfolge befindet.

Hier sind einige Beispiele für strpos():

Wie Sie im obigen Beispiel sehen können, ist Angela nicht am Anfang unseres Satzes, also hätte sie eine Position ungleich Null, die als wahr ausgewertet wird.

Andererseits ist Amy ganz am Anfang und ihre Position 0 wird als false ausgewertet, obwohl sie in der Zeichenfolge vorhanden ist. Stellen Sie daher immer sicher, dass Sie den Wert von strpos() mit !== bewerten, da es keine Möglichkeit gibt zu wissen, wo eine Teilzeichenfolge auftreten kann, wenn Sie es mit Zeichenfolgen im wirklichen Leben zu tun haben.

Manchmal müssen Sie diese Prüfung der Teilzeichenfolge in einer Zeichenfolge ohne Berücksichtigung der Groß-/Kleinschreibung vornehmen. In diesem Fall können Sie einfach die stripos()-Funktion in PHP verwenden. Sie funktioniert genau wie strpos(), macht aber die Suchanfrage unempfindlich in Bezug auf Groß-/Kleinschreibung.

Verwenden von strstr() und stristr()

Standardmäßig gibt die Funktion strstr() einen Teil der Hauptzeichenkette zurück, beginnend mit der Teilzeichenkette bis zum Ende der Hauptzeichenkette. Sie gibt false zurück, wenn die Teilzeichenkette nicht innerhalb der Hauptzeichenkette vorhanden ist.

Wir können diese Informationen verwenden, um das Vorhandensein einer Teilzeichenfolge innerhalb einer Zeichenfolge zu überprüfen. Alles, was wir tun müssen, ist den von strstr() zurückgegebenen Wert auszuwerten und zu überprüfen, ob er false ist oder nicht. Genau wie beim letzten Mal werden wir den strikten Ungleichheitsoperator !== verwenden, um die Überprüfung vorzunehmen.

Hier einige Beispiele:

Sie können stristr() anstelle von strstr() verwenden, um die Suche unempfindlich in Bezug auf die Groß-/Kleinschreibung zu machen. Alle anderen Verhaltensweisen von stristr() bleiben genau gleich.

Zusammenfassung

In diesem Kurztipp sind wir drei verschiedene Möglichkeiten von PHP zur Überprüfung, ob eine Zeichenfolge eine Teilzeichenfolge enthält, durchgegangen. Sie können jede dieser Funktionen verwenden, je nachdem, welche Informationen Sie von der Zeichenfolge benötigen. Mit den neuen PHP 8-Funktionen können Sie jede Art von strenger Überprüfung überspringen, aber Sie müssen die älteren Funktionen verwenden, wenn Sie die Position der Teilzeichenfolge erfahren oder einen Teil der Hauptzeichenfolge als Rückgabewert abrufen möchten.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.