PHP 4.3

7.5 Aufspalten einer Zeichenkette mit explode()

Erinnern Sie sich an die Funktion substr(). In dem dazugehörigen Skriptbeispiel war es leider ziemlich kompliziert, die E-Mailadresse in ihre Bestandteile Account-Name, Domain und Top-Level-Domain zu zerlegen. Mit der neuen Funktion explode() erledigen wir diese Aufgabe eleganter.

explode() zerlegt eine Zeichenkette anhand einer Trenn-Zeichenkette in mehrere Bestandteile und liefert diese in Form eines Arrays zurück. Schauen Sie sich dazu das veranschaulichende Beispiel an:

Skriptbeispiel explode()
<?php

  $string = "Das ist eine Zeichenkette";

  $array = explode(" ", $string);

  for($i=0; $i < count($array); $i++) {
    echo $array[$i] . "<br>";
  }

?>

Die Zeichenkette $string enthält einen gewöhnlichen Satz mit Leerzeichen zwischen den Wörtern. Mittels explode() zerlegen wir diesen Satz, indem die Leerzeichen die Trennzeichen zwischen den Wörtern bilden. explode() liefert das einfache Array $array zurück, welches jetzt alle Wörter des Satzes in getrennten Feldern aufbewahrt. Die nachfolgende for-Schleife liest die Array-Felder wieder aus und gibt die Wörter des ursprünglichen Satzes in der HTML-Datei aus.

Browserausgabe
Das
ist
eine
Zeichenkette

Versuchen wir uns nun an dem E-Mail-Beispiel aus dem Abschnitt zur substr()-Funktion. Hierbei trennen wir in zwei Schritten mittels explode() zuerst den Benutzernamen vom Rest der E-Mailadresse und anschließend die einzelnen Elemente des Domain-Namens voneinander. Mit diesem Skript ist es leichter möglich, Domainnamen, die aus mehreren Bestandteilen bestehen, zu erkennen (z.B. "example.co.uk").

Skriptbeispiel explode()
<?php

  $email = "example@example.co.uk";

  $array = explode("@", $email);
  $account = $array[0];
  $dom_part = $array[1];

  $array = explode(".", $dom_part);
  $dom_count = count($array) - 1;
  $tld = $array[count($array) - 1]; // das letzte Element

  echo "Der Benutzername ist: " . $account . "<br>";
  for ($i = 0; $i < $dom_count; $i++) {
    echo ($i + 1) . ". Domain-Element ist: " . $array[$i] . "<br>";
  }
  echo "Der Top-Level-Domain-Name ist: " . $tld . "<br>";

?>

Kommentare (0)

Ihr Kommentar

Name