Scinde une chaîne de caractères en segments

# explode

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

explode — Scinde une chaîne de caractères en segments

### Description

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

explode() retourne un tableau de chaînes de caractères, chacune d'elle étant une sous-chaîne du paramètre `string` extraite en utilisant le séparateur `separator`.

### Liste de paramètres

`separator`

  Le séparateur.

`string`

  La chaîne initiale.

`limit`

  Si `limit` est défini et positif, le tableau retourné contient, au maximum, `limit` éléments, et le dernier élément contiendra le reste de la chaîne.

  Si le paramètre `limit` est négatif, tous les éléments, excepté les -`limit` derniers éléments sont retournés.

  Si `limit` vaut zéro, il est traité comme valant 1.

> Note:

> Antérieur à PHP 8.0, implode() acceptait ses paramètres dans n'importe quel ordre. explode() n'a jamais supporté ceci : il faut s'assurer que le paramètre `separator` soit placé avant le paramètre `string`.

### Valeurs de retour

Retourne un tableau de chaînes de caractères créées en scindant la chaîne du paramètre `string` en plusieurs morceaux suivant le paramètre `separator`.

Si `separator` est une chaîne vide (""), explode() lancera une ValueError. Si `separator` contient une valeur qui n'est pas contenue dans `string` ainsi qu'une valeur négative pour le paramètre `limit`, alors explode() retournera un tableau vide, sinon, un tableau contenant la chaîne `string` entière. Si les valeurs de `separator` apparaissent au début ou à la fin de `string`, ces valeurs seront ajoutées comme une valeur d'un array vide soit en la première ou dernière position du array retourné respectivement.

### Historique

Version | Description
--- | ---
8.0.0 | explode() lancera désormais une ValueError quand une chaîne vide (`""`) est fournie pour le paramètre `separator`. Précédemment, explode() retournait `false`.

### Exemples

Exemple #1 Exemple avec explode()

    <?php
    // Exemple 1
    $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
    $pieces = explode(" ", $pizza);
    echo $pieces[0], PHP_EOL; // piece1
    echo $pieces[1], PHP_EOL; // piece2

    // Exemple 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; // *

    ?>

Exemple #2 Exemple de valeurs retournées par la fonction explode()

    <?php
    /* Une chaîne qui ne contient pas de délimiteur va retourner un tableau
       contenant qu'un seul élément représentant la chaîne originale */
    $input1 = "hello";
    $input2 = "hello,there";
    $input3 = ',';
    var_dump( explode( ',', $input1 ) );
    var_dump( explode( ',', $input2 ) );
    var_dump( explode( ',', $input3 ) );

    ?>

L'exemple ci-dessus va afficher :

    array(1)
    (
        [0] => string(5) "hello"
    )
    array(2)
    (
        [0] => string(5) "hello"
        [1] => string(5) "there"
    )
    array(2)
    (
        [0] => string(0) ""
        [1] => string(0) ""
    )

Exemple #3 Exemple avec explode() et le paramètre `limit`

    <?php
    $str = 'one|two|three|four';

    // limit positif
    print_r(explode('|', $str, 2));

    // limit négatif
    print_r(explode('|', $str, -1));
    ?>

L'exemple ci-dessus va afficher :

    Array
    (
        [0] => one
        [1] => two|three|four
    )
    Array
    (
        [0] => one
        [1] => two
        [2] => three
    )

### Notes

> Note: Cette fonction gère les chaînes binaires.

### Voir aussi

- preg_split() - Éclate une chaîne par expression rationnelle
- str_split() - Convertit une chaîne de caractères en tableau
- mb_split() - Scinde une chaîne en tableau avec une expression rationnelle multioctets
- str_word_count() - Compte le nombre de mots utilisés dans une chaîne
- strtok() - Coupe une chaîne en segments
- implode() - Rassemble les éléments d'un tableau en une chaîne

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