substr_compare

(PHP 5, PHP 7, PHP 8)

substr_compare Binärsicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge

Beschreibung

substr_compare(
    string $haystack,
    string $needle,
    int $offset,
    ?int $length = null,
    bool $case_insensitive = false
): int

substr_compare() vergleicht haystack ab der in offset definierten Position mit needle. Die Länge des verglichenen String-Bestandteils wird vom Parameter length bestimmt.

Parameter-Liste

haystack

Die zu vergleichende Hauptzeichenkette.

needle

Die zweite zu vergleichende Zeichenkette.

offset

Die Anfangsposition für den Vergleich. Wenn der Wert negativ ist, wird rückwärts vom Ende der Zeichenkette an gezählt.

length

Die Länge der zu vergleichenden Zeichensequenz. Standardwert ist der größere Wert des Vergleiches der Länge von needle mit der Länge von haystack minus offset.

case_insensitive

Wenn case_insensitive den Wert true hat, wird der Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt.

Rückgabewerte

Gibt einen Wert kleiner als 0 zurück, wenn string1 in der Reihenfolge der Sortierung vor string2 kommt; einen Wert größer als 0, wenn string1 nach string2 kommt, und 0, wenn sie gleich sind. Aus dem Wert kann außer seinem Vorzeichen keine bestimmte Bedeutung abgeleitet werden.

Wenn offset gleich (vor PHP 7.2.18, 7.3.5) oder größer als die Länge von haystack ist oder length gesetzt und kleiner als 0 ist, gibt substr_compare() eine Warnung aus und hat den Rückgabewert false.

Changelog

Version Beschreibung
8.2.0 Diese Funktion gibt nicht mehr garantiert strlen($string1) - strlen($string2) zurück, wenn die Längen der Zeichenketten nicht gleich sind, sondern kann nun stattdessen -1 oder 1 zurückgeben.
8.0.0 length ist nun nullable (akzeptiert den null-Wert).
7.2.18, 7.3.5 offset kann nun gleich der Länge von haystack sein.

Beispiele

Beispiel #1 Ein substr_compare()-Beispiel

<?php
echo substr_compare("abcde", "bc", 1, 2); // 0
echo substr_compare("abcde", "de", -2, 2); // 0
echo substr_compare("abcde", "bcg", 1, 2); // 0
echo substr_compare("abcde", "BC", 1, 2, true); // 0
echo substr_compare("abcde", "bc", 1, 3); // 1
echo substr_compare("abcde", "cd", 1, 2); // -1
echo substr_compare("abcde", "abc", 5, 1); // warning
?>

Siehe auch

  • strncmp() - String-Vergleich der ersten n Zeichen (binärsicher)