de.comp.lang.php.* FAQ

7.2. Wie zerlege ich einen String?

Antwort von Kristian Köhntopp

Man kann die einzelnen Zeichen in einem String ähnlich wie ein Array ansprechen, allerdings verwendet man anstelle der eckigen Klammern [ und ] geschweifte Klammern: { und }.

$str = "teststring";
$len = strlen($str);
for($i=0; $i<$len; $i++)
  printf("Zeichen %d ist %s<br>\n", $i, $str{$i});

Diese Methode ist auch geeignet, um einen String in ein Array umzuwandeln:

function stringToArray($string) {
  $array = array();
  for($i=0; $i<strlen($string); $i++)
    $array[$i] = $string{$i};
  return $array;
}

Mit Hilfe der Funktion substr() kann man Teilstrings aus einem String herausschneiden.

Mit Hilfe der Funktion explode() kann man einen String an einem Trennzeichen in ein Array zerlegen.

  $str = "dies ist ein teststring.";
  $avar = explode(" ", $str);
  $len = count($avar);
  for ($i=0; $i<$len; $i++)
    printf("%d: %s<br>\n", $i, $avar[$i]);

Dieses Beispiel zerlegt den gegebenen Teststring an den Leerzeichen und erzeugt ein Array $avar mit den Indices 0 bis 3 (4 Elementen).

Kompliziertere Zerlegungen lassen sich mit Hilfe der Funktion preg_split() vornehmen. Das veraltete, weniger leistungsfähigere und langsamere split() könnte man auch verwenden.

  $str = "ich bin  ein    sehr komplizierter test, nicht wahr?";
  $avar = preg_split("/[ \t.!?]+/", $str);
  $len = count($avar);
  for ($i=0; $i<$len; $i++)
    printf("%d: %s<br>\n", $i, $avar[$i]);

Im Gegensatz zum vorhergehenden Beispiel werden hier mehrfache Leerzeichen nicht als mehrfache Trennungen gezählt und auch Satzzeichen werden zu den Trennzeichen gezählt.

Valid HTML 4.01! Valid CSS!

7.2. Wie zerlege ich einen String?
http://www.php-faq.de/q/q-string-teilen.html
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team