(PHP 4, PHP 5, PHP 7)
substr — Gibt einen Teil eines Strings zurück
$string
, int $start
[, int $length
] ) : string
Gibt den Teil von string zurück, der durch die
Parameter start und length
definiert wurde.
stringDie Eingabezeichenkette.
start
Wenn start nicht negativ ist, beginnt der
zurückgegebene String an der start-Position von
string, angefangen bei 0 (Null). So ist z.B.
im String 'abcdef' das Zeichen an der Position
0 gleich 'a', das Zeichen an der
Position 2 ist 'c' usw.
Ist start negativ, beginnt der zurückgegebene
String bei dem in start festgelegten Zeichen
vom Ende von string aus betrachtet.
Ist string kürzer als
start Zeichen, wird FALSE zurückgegeben.
Beispiel #1 Einen negativen start-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öchstens length Zeichen
ab start (abhängig von der Länge von
string).
Ist length angegeben und negativ, werden
genau so viele Zeichen vom Ende von string
abgeschnitten (nachdem die Startposition ermittelt wurde, sollte
start negativ sein). Gibt
start die Position des abzuschneidenden Teiles
oder dahinter an, wird FALSE zurückgegeben.
Wenn length gegeben ist und den Wert
0, FALSE oder NULL hat, wird ein leerer String
zurückgegeben.
Wird length ausgelassen, wird die
Teilzeichenkette beginnend von start bis zum Ende
der Zeichenkette 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 false zurück
$rest = substr("abcdef", -3, -1); // gibt "de" zurück
?>
Gibt den extrahierten Teil von string zurück.
Im Fehlerfall wird FALSE zurückgegeben. oder eine leere Zeichenkette.
Beispiel #3 Generelle Verwendung von substr()
<?php
echo substr('abcdef', 1); // bcdef
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 mit PHP 7:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) '' 6) '' 7) '1200'
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
1) 'pe' 2) '54' 3) 'gr' 4) '1' 5) false 6) false 7) '1200'
Gibt im Fehlerfall FALSE zurück.
<?php
var_dump(substr('a', 2)); // bool(false)
?>