substr

(PHP 4, PHP 5, PHP 7)

substrGibt einen Teil eines Strings zurück

Beschreibung

substr ( string $string , int $start [, int $length ] ) : string

Gibt den Teil von string zurück, der durch die Parameter start und length definiert wurde.

Parameter-Liste

string

Die Eingabezeichenkette. Muss mindestens ein Zeichen lang sein.

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", -31); // 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
?>

Rückgabewerte

Gibt den extrahierten Teil von string zurück. Im Fehlerfall wird FALSE zurückgegeben. oder eine leere Zeichenkette.

Changelog

Version Beschreibung
7.0.0 Ist string start Zeichen lang, wird eine leere Zeichenkette zurückgegegben. Vor dieser Version, wurde in diesem Fall FALSE zurückgegeben.
5.2.2 - 5.2.6 Wenn der start Parameter die Position einer negativen Trunkierung oder außerhalb bezeichnet, wird false zurückgegeben. Andere Versionen bekommen die Zeichenkette von start.

Beispiele

Beispiel #3 Generelle Verwendung von substr()

<?php
echo substr('abcdef'1);     // bcdef
echo substr('abcdef'13);  // bcd
echo substr('abcdef'04);  // abcd
echo substr('abcdef'08);  // abcdef
echo substr('abcdef', -11); // 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"02), true).PHP_EOL;
echo 
"2) ".var_export(substr(5432102), true).PHP_EOL;
echo 
"3) ".var_export(substr(new apple(), 02), true).PHP_EOL;
echo 
"4) ".var_export(substr(true01), true).PHP_EOL;
echo 
"5) ".var_export(substr(false01), true).PHP_EOL;
echo 
"6) ".var_export(substr(""01), true).PHP_EOL;
echo 
"7) ".var_export(substr(1.2e304), 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'

Fehler/Exceptions

Gibt im Fehlerfall FALSE zurück.

<?php
var_dump
(substr('a'2)); // bool(false)
?>

Siehe auch