Teilt eine Zeichenkette anhand einer Zeichenkette

# explode

(PHP 4, PHP 5, PHP 7, PHP 8)

explode — Teilt eine Zeichenkette anhand einer Zeichenkette

### Beschreibung

function explode(string `$separator`, string `$string`, int `$limit` = `PHP_INT_MAX`): array

Gibt ein Array aus Zeichenketten zurück, die jeweils Teil von `string` sind. Die Abtrennung erfolgt dabei an der mit `separator` angegebenen Zeichenkette.

### Parameter-Liste

`separator`

  Die Begrenzungszeichenkette.

`string`

  Die Eingabezeichenkette.

`limit`

  Ist der Parameter `limit` angegeben und positiv, enthält das zurückgegebene Array maximal `limit` Elemente, wobei das letzte Element den Rest von `string` beinhaltet.

  Ist der Parameter `limit` negativ, werden alle Teilzeichenketten bis auf die letzten -`limit`-Teile zurückgegeben.

  Wenn der Parameter `limit` gleich 0 ist, wird er wie 1 behandelt.

> Hinweis:

> Vor PHP 8.0 akzeptierte implode() die Parameter in beliebiger Reihenfolge. explode() hat dies nie unterstützt. Stellen Sie daher sicher, dass Sie den Parameter `separator` vor dem Parameter `string` notieren.

### Rückgabewerte

Gibt ein Array von Strings zurück, die durch Aufsplitten des Parameters `string` an Begrenzungen durch `separator` erzeugt werden.

Ist `separator` eine leere Zeichenkette (""), so löst explode() einen ValueError aus. Enthält `separator` einen Wert, der nicht in `string` vorkommt und wird ein negativer Wert für `limit` verwendet, wird ein leeres Array zurückgegeben. Für alle anderen Werte von `limit` wird ein Array zurückgegeben, das `string` als einziges Element enthält. Wenn `separator` am Anfang oder am Ende von `string` steht, wird ein leeres Array an den Anfang bzw. das Ende des zurückgegebenen Arrays angehängt.

### Changelog

Version | Beschreibung
--- | ---
8.0.0 | explode() löst nun einen ValueError aus, wenn an den Parameter `separator` eine leere Zeichenkette (`""`) übergeben wird. Bisher gab explode() stattdessen `false` zurück.

### Beispiele

Beispiel #1 explode()-Beispiele

    <?php
    // Beispiel 1
    $pizza  = "Teil1 Teil2 Teil3 Teil4 Teil5 Teil6";
    $teile = explode(" ", $pizza);
    echo $teile[0], PHP_EOL; // Teil1
    echo $teile[1], PHP_EOL; // Teil2

    // Beispiel 2
    $data = "foo:*:1023:1000::/home/foo:/bin/sh";
    list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
    echo $user, PHP_EOL; // foo
    echo $pass, PHP_EOL; // *
    ?>

Beispiel #2 explode()-Rückgabebeispiele

    <?php
    /*
       Eine Zeichenkette, die nicht das Trennzeichen enthält, wird einfach
       ein ein-elementiges Array mit der ursprünglichen Zeichenkette liefern.
    */
    $input1 = "hallo";
    $input2 = "hallo,da";
    $input3 = ',';
    var_dump( explode( ',', $input1 ) );
    var_dump( explode( ',', $input2 ) );
    var_dump( explode( ',', $input3 ) );

    ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    array(1)
    (
        [0] => string(5) "hallo"
    )
    array(2)
    (
        [0] => string(5) "hallo"
        [1] => string(5) "da"
    )
    array(2)
    (
        [0] => string(0) ""
        [1] => string(0) ""
    )

Beispiel #3 `limit`-Parameterbeispiele

    <?php
    $str = 'eins|zwei|drei|vier';

    // positiver Wert in "limit"
    print_r(explode('|', $str, 2));

    // negative Wert in "limit"
    print_r(explode('|', $str, -1));
    ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [0] => eins
        [1] => zwei|drei|vier
    )
    Array
    (
        [0] => eins
        [1] => zwei
        [2] => drei
    )

### Anmerkungen

> Hinweis: Diese Funktion ist binärsicher.

### Siehe auch

- preg_split() - Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
- str_split() - Konvertiert einen String in ein Array
- mb_split() - Split multibyte string using regular expression
- str_word_count() - Liefert Informationen über in einem String verwendete Worte
- strtok() - Zerlegt einen String
- implode() - Verbindet Array-Elemente zu einem String

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open