Strings in Teile aufteilen
Philipp
- php
Guten Nachmittag
Ich habe einen String
msg="[hallo1][hallo2][hallo3]";
nun möchte ich die hallo1, hallo2, hallo3 Teile (die in belieber reihenfolge, irgendwo in dem string stehen) in drei neuen variblen speichern.
wie mache ich das??
Danke für eure Hilfe
Grüsse,
msg="[hallo1][hallo2][hallo3]";
nun möchte ich die hallo1, hallo2, hallo3 Teile (die in belieber reihenfolge, irgendwo in dem string stehen) in drei neuen variblen speichern.
kommt drauf an. Wenn die zu extrahierenden Stringteile durch eckige Klammern gekennzeichnet werden (diese also nirgendwo anders in $msg vorkommen) müsste eigentlich sowas funktionieren:
preg_match_all('/[[^]]*]/',$msg,$matches);
Das sollte (ist ungetestet) alle Klammernpaare finden (innerhalb der Klammern darf alles stehen außer "]") und den Inhalt der Treffer im Array $matches ablegen. Den kannst Du noch durchlaufen:
foreach ($matches AS $index => $value) {
$matches[ $index ] = preg_replace('/^[(.*)]$/','\1',$value);
}
Das entfernt die eckigen Klammern am Anfang und Ende jedes Elements.
Naja, ich hab jetzt keine Ahnung, ob das funktioniert oder ob ich am Freitag nachmittag nicht schon ein bisschen zu ausgelaugt bin für sowas, aber probieren kannst Du's ja mal ;-)
viele Grüße
Achim Schrepfer
Ich habe es mal so ausprobiert:
<?php
$msg="[hallo1][hallo2][hallo3]";
preg_match_all('/[[^]]*]/',$msg,$matches);
for ($i=1;$i<3;$i++) {
echo $matches[i]; }
?>
Aber irgendwei wird jetzt gar nicht mehr angezeigt....
Was mache ich falsch?