dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Stringfunktionen

Wie zerlege ich einen String?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

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;
}
13. August 2008 Geschrieben von Niels Braczek

Das oben Stehende ist so nicht (mehr) korrekt. Es wurde inzwischen festgelegt, dass einzelne Zeichen eines Strings wie Array-Elemente mittels der eckigen Klammern [ und ] angesprochen werden. Die beschriebene Umwandlung in ein Array erübrigt sich dadurch vollständig.

In der Version PHP6 soll die Schreibweise mit den geschweiften Klammern nicht mehr zulässig sein.

Um einen String in Teile fester Länge zu zerlegen, verwendet man die Funktion str_split():

$arr = str_split( "Hallo Welt!", 3 );
print_r( $arr );

ergibt

Array
(
    [0] => Hal
    [1] => lo
    [2] => Wel
    [3] => t!
)

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.

Wie zerlege ich einen String?
http://www.php-faq.de/q-string-teilen.html
 

Login