substr_compare
(PHP 5, PHP 7, PHP 8)
substr_compare — Binärdaten-sicherer Vergleich zweier Strings, beginnend an einer bestimmten Position und endend nach einer festgelegten Länge
Beschreibung
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 length-Parameter 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 des
needlemit der Länge vonhaystackminusoffset. -
case_insensitive -
Wenn
case_insensitiveden Werttruehat, wird der Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchgeführt.
Rückgabewerte
Gibt eine Zahl < 0 zurück, wenn haystack ab der
in offset festgelegten Position kleiner ist als
needle, eine Zahl > 0, wenn der ermittelte String
größer ist als needle, und 0, wenn sie gleich sind.
Wenn der Parameter 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 (oder, vor
PHP 5.5.11, kleiner als 1), gibt substr_compare() eine
Warnung aus und hat den Rückgabewert false.
Changelog
| Version | Beschreibung |
|---|---|
| 8.0.0 |
length ist jetzt ein Nullable-Typ.
|
| 7.2.18, 7.3.5 |
offset kann nun gleich der Länge des
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
?>

