(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
$haystack,$needle,$offset,$length = null,$case_insensitive = false
substr_compare() vergleicht haystack
ab der in offset definierten Position mit
needle. Die Länge des verglichenen String-Bestandteils
wird vom Parameter length bestimmt.
haystackDie zu vergleichende Hauptzeichenkette.
needleDie zweite zu vergleichende Zeichenkette.
offsetDie 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.
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.
| 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.
|
Beispiel #1 Ein substr_compare()-Beispiel
<?php
echo substr_compare("abcde", "bc", 1, 2), PHP_EOL; // 0
echo substr_compare("abcde", "de", -2, 2), PHP_EOL; // 0
echo substr_compare("abcde", "bcg", 1, 2), PHP_EOL; // 0
echo substr_compare("abcde", "BC", 1, 2, true), PHP_EOL; // 0
echo substr_compare("abcde", "bc", 1, 3), PHP_EOL; // 1
echo substr_compare("abcde", "cd", 1, 2), PHP_EOL; // -1
echo substr_compare("abcde", "abc", 5, 1), PHP_EOL; // -1
?>