substr
(PHP 4, PHP 5, PHP 7, PHP 8)
substr — Liefert einen Teil eines Strings
Beschreibung
$string, int $offset, ?int $length = null): string
Gibt den Teil von string zurück, der durch die
Parameter offset und length
definiert wurde.
Parameter-Liste
-
string -
Der Eingabestring.
-
offset -
Wenn
offsetnicht negativ ist, beginnt der zurückgegebene String an deroffset-Position vonstring, angefangen bei 0 (Null). So ist z. B. im String 'abcdef' das Zeichen an der Position0gleich 'a', das Zeichen an der Position2ist 'c' usw.Ist
offsetnegativ, beginnt der zurückgegebene String bei dem inoffsetfestgelegten Zeichen vom Ende vonstringaus betrachtet.Ist
stringkürzer alsoffsetZeichen, wird ein leerer String zurückgegeben.Beispiel #1 Einen negativen
offset-Wert verwenden<?php
$rest = substr("abcdef", -1); // gibt "f" zurück
$rest = substr("abcdef", -2); // gibt "ef" zurück
$rest = substr("abcdef", -3, 1); // gibt "d" zurück
?> -
length -
Ist
lengthangegeben und positiv, enthält der zurückgegebene String höchstenslengthZeichen aboffset(abhängig von der Länge vonstring).Ist
lengthangegeben und negativ, werden genau so viele Zeichen vom Ende vonstringabgeschnitten (nachdem die Startposition ermittelt wurde, wennoffsetnegativ ist). Gibtoffsetdie Position der Abtrennung oder dahinter an, wird ein leerer String zurückgegeben.Wenn
lengthgegeben ist und den Wert0hat, wird ein leerer String zurückgegeben.Wenn
lengthausgelassen wird odernullist, wird der Teilstring beginnend vonoffsetbis zum Ende des Strings zurückgegeben.Beispiel #2 Negativen
length-Wert verwenden<?php
$rest = substr("abcdef", 0, -1); // gibt "abcde" zurück
$rest = substr("abcdef", 2, -1); // gibt "cde" zurück
$rest = substr("abcdef", 4, -4); // gibt "" zurück; vor PHP 8.0.0 wurde false zurückgegeben
$rest = substr("abcdef", -3, -1); // gibt "de" zurück
?>
Rückgabewerte
Gibt den extrahierten Teil von string oder einen
leeren String zurück.
Changelog
| Version | Beschreibung |
|---|---|
| 8.0.0 |
length ist jetzt nullable (akzeptiert den
null-Wert). Wenn length explizit auf null
gesetzt wird, gibt die Funktion einen Teilstring zurück, der am Ende
des Strings endet, während sie vorher einen leeren String zurückgegeben
hat.
|
| 8.0.0 |
Die Funktion gibt einen leeren String zurück, wo sie vorher false
zurückgegeben hat.
|
Beispiele
Beispiel #3 Generelle Verwendung von substr()
<?php
echo substr('abcdef', 1); // bcdef
echo substr("abcdef", 1, null); // bcdef; vor PHP 8.0.0 wurde ein leerer String zurückgegeben
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// Auf ein einzelnes Zeichen eines Strings kann auch mittels
// eckiger Klammern zugegriffen werden
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
Beispiel #4 substr()-Typumwandlungs-Verhalten
<?php
class apple {
public function __toString() {
return "green";
}
}
echo "1) ".var_export(substr("pear", 0, 2), true).PHP_EOL;
echo "2) ".var_export(substr(54321, 0, 2), true).PHP_EOL;
echo "3) ".var_export(substr(new apple(), 0, 2), true).PHP_EOL;
echo "4) ".var_export(substr(true, 0, 1), true).PHP_EOL;
echo "5) ".var_export(substr(false, 0, 1), true).PHP_EOL;
echo "6) ".var_export(substr("", 0, 1), true).PHP_EOL;
echo "7) ".var_export(substr(1.2e3, 0, 4), true).PHP_EOL;
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200'
Beispiel #5 Ungültiger Zeichenbereich
Wenn ein ungültiger Zeichenbereich angefordert wird, gibt
substr() seit PHP 8.0.0 einen leeren String zurück;
vorher wurde stattdessen false zurückgegeben.
<?php
var_dump(substr('a', 2));
?>
Das oben gezeigte Beispiel erzeugt mit PHP 8 folgende Ausgabe:
string(0) ""
Das oben gezeigte Beispiel erzeugt folgende Ausgabe mit PHP 7:
bool(false)
Siehe auch
- strrchr() - Sucht das letzte Vorkommen eines Zeichens in einem String
- substr_replace() - Ersetzt Text innerhalb einer Zeichenkette
- preg_match() - Führt eine Suche mit einem regulären Ausdruck durch
- trim() - Entfernt Whitespaces (oder andere Zeichen) am Anfang und Ende eines Strings
- mb_substr() - Get part of string
- wordwrap() - Umbricht einen String nach einer bestimmten Anzahl Zeichen
- String-Zugriff und -Veränderung je Zeichen

