PHP 4.3

7.6 Vereinigen von Strings mit implode()

Das Gegenstück zur Funktion explode() heißt implode() bzw. join(). Sie können damit Arrays anhand eines oder mehrerer Füllzeichen zu einer Zeichenkette vereinigen. Praktisch ist diese Funktion dann, wie wir später zeigen werden, wenn wir größere Datenmengen aus Arrays in einer Datei, in Cookies oder einer Datenbank speichern möchten.

implode() erwartet als Parameter das Array, dessen Daten Sie umwandeln möchten, sowie einen Füllzeichen-Parameter, der die Werte voneinander separieren soll und den wir später als Trenn-Zeichenkette für die bereits erläuterte Funktion explode() einsetzen könnten.

Um die Werte später möglichst sicher voneinander zu trennen, suchen wir uns eine Kombination von Trennzeichen (im englischen als Delimiter bezeichnet), die innerhalb der zu vereinigenden Zeichenketten nicht vorkommen darf und trotzdem nicht unnötig lang ist. Die Eindeutigkeit des Delimiters ist von größter Wichtigkeit für das Funktionspaar implode() und explode(). Würde die entsprechende Kombination von Zeichen im Inhalt einer abzuspeichernden Variablen enthalten sein, würde explode() dies als Trennzeichenfolge interpretieren und damit die Abfolge der Werte durcheinander bringen.

Wir schlagen an dieser Stelle die Zeichenfolge "@/@" vor. Sie kommt in normalen Wörtern ebenso wenig wie in Zahlen vor. Beachten Sie jedoch, dass Benutzereingaben eine solche Zeichenfolge durchaus enthalten können. Wie Sie sich durch Durchsuchungen der Benutzereingaben auf bestimmte Zeichenfolgen absichern können, zeigen wir Ihnen im Verlauf dieser Lerneinheit.

PHP bietet zwei Formen der Syntax an: string implode(string, array) und string implode(array, string). Die zweite Variante ist aus Gründen der Kompatibilität zu älteren PHP-Versionen möglich, ihr Gebrauch jedoch nicht empfehlenswert.

Skriptbeispiel implode()
<?php

  $array[0] = "Apfel";
  $array[1] = "Birne";
  $array[2] = "Kirsche";
  $array[3] = "Pflaume";

  $string = implode("@/@", $array);

  echo $string;

?>

Browserausgabe
Apfel@/@Birne@/@Kirsche@/@Pflaume

Kommentare (0)

Ihr Kommentar

Name