explode

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

explodeTeilt eine Zeichenkette anhand einer Zeichenkette

Beschreibung

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

Gibt ein Array aus Strings 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 Teilstrings 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 string-Parameters an Begrenzungen durch separator erzeugt werden.

Ist separator ein leerer String (""), so gibt explode() false zurück. 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 den string als einziges Element enthält.

Beispiele

Beispiel #1 explode()-Beispiele

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

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

?>

Beispiel #2 explode()-Rückgabe-Beispiel

<?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_dumpexplode','$input1 ) );
var_dumpexplode','$input2 ) );
var_dumpexplode','$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('|'$str2));

// negative Wert in "limit" (ab PHP 5.1)
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 binary safe.

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() - Gibt Informationen über in einem String verwendete Worte zurück
  • strtok() - Zerlegt einen String
  • implode() - Verbindet Array-Elemente zu einem String

add a note add a note

User Contributed Notes 5 notes

up
2
Emilio Bravo
24 days ago
$string = "PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION";
$exploded = explode("::",$string);
/*

explode('::',$string) = eliminate every :: and for each division of ::make an array element

Example:

PDO::ERRMODE_EXCEPTION (exploded) = array     (
                                                    [0] => string PDO
                                                    [1] => string ERRMODE_EXCEPTION
                                               )
Example:

$exploded[0] = "PDO";
*/
foreach ($exploded as $index) {
    echo $index . "\n";
}
/*

Output:

PDO
ATTR_ERRMODE => PDO
ERRMODE_EXCEPTION

*/
up
3
bocoroth
2 months ago
Be careful, while most non-alphanumeric data types as input strings return an array with an empty string when used with a valid separator, true returns an array with the string "1"!

var_dump(explode(',', null)); //array(1) { [0]=> string(0) "" }
var_dump(explode(',', false)); //array(1) { [0]=> string(0) "" }

var_dump(explode(',', true)); //array(1) { [0]=> string(1) "1" }
up
-1
henrik Schmidt
1 month ago
"Return value" text needs updating for php 8, an empty delimiter now throws an Exception.
up
-3
David Spector
1 month ago
When using 'explode' to create an array of strings from a user-specified string that contains newline characters, you may wish the resulting array to correctly reflect the user's intentions by ignoring any final empty line (many users like to end multi-line input with a final newline, for clarity).

Here is a function to call after 'explode' to support this effect:

// When using explode, delete the last line in the array of lines when it is empty
function IgnoreEmptyLastLine(&$linesArr)
    {
    $last=count($linesArr)-1;
    if ($last>=0 && !$linesArr[$last])
        unset($linesArr[$last]);
    } // IgnoreEmptyLastLine
up
-18
leandro at primersistemas dot com dot br
4 months ago
function aexplode($delimiters,$string,$trimduplicate = false) {
    if (!is_array($delimiters))
        return explode($delimiters,$string);
    $stringaux = str_replace($delimiters, $delimiters[0], $string);
    if ($trimduplicate)
        while (strpos($stringaux,$delimiters[0].$delimiters[0]) !== false)
            $stringaux = str_replace($delimiters[0].$delimiters[0],$delimiters[0],$stringaux);
    return explode($delimiters[0],$stringaux);
}

This functions will work and accept array.
To Top