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
offset
nicht 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 Position0
gleich 'a
', das Zeichen an der Position2
ist 'c
' usw.Ist
offset
negativ, beginnt der zurückgegebene String bei dem inoffset
festgelegten Zeichen vom Ende vonstring
aus betrachtet.Ist
string
kürzer alsoffset
Zeichen, 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
length
angegeben und positiv, enthält der zurückgegebene String höchstenslength
Zeichen aboffset
(abhängig von der Länge vonstring
).Ist
length
angegeben und negativ, werden genau so viele Zeichen vom Ende vonstring
abgeschnitten (nachdem die Startposition ermittelt wurde, wennoffset
negativ ist). Gibtoffset
die Position der Abtrennung oder dahinter an, wird ein leerer String zurückgegeben.Wenn
length
gegeben ist und den Wert0
hat, wird ein leerer String zurückgegeben.Wenn
length
ausgelassen wird odernull
ist, wird der Teilstring beginnend vonoffset
bis 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