Ich würde gerne aus einem String alle Befehle auslesen, die folgerndermaßen aufgbaut sind:
{var[:wert[:wert[etc...]]]}
also ein Ausdruck beginnend mit { dann ein wort und dann eine unbestimmte Anzahl von Werten. Das Ende ist wieder mit } gekennzeichnet. (Beispiel siehe $string).
Der Code soll das dann auslesen und in einem Array speichern, das folgerndermaßen aufgabaut sein sollte (bzw. so ähnlich):
Das Script:
momentan bekomme ich aber nur diese Ausgabe:
Was muss ich ändern?
Danke
nougad
{var[:wert[:wert[etc...]]]}
also ein Ausdruck beginnend mit { dann ein wort und dann eine unbestimmte Anzahl von Werten. Das Ende ist wieder mit } gekennzeichnet. (Beispiel siehe $string).
Der Code soll das dann auslesen und in einem Array speichern, das folgerndermaßen aufgabaut sein sollte (bzw. so ähnlich):
Code:
array(3) { [0]=> array(3) { [0]=> string(29) "{var:wert1:wert2:wert3:wert4}" [1]=> string(3) "var" [2]=> string(5) "wert1" [3]=> string(6) "wert2" [4]=> string(6) "wert3" [5]=> string(6) "wert4" } [1]=> array(3) { [0]=> string(20) "{var2:wert21:wert22}" [1]=> string(4) "var2" [2]=> string(6) "wert21" [2]=> string(6) "wert22" } [2]=> array(2) { [0]=> string(5) "{var}" [1]=> string(3) "var" } }
PHP-Code:
<?php
$string = "asdf{var:wert1:wert2:wert3:wert4}asdfasdf{var2:wert21:wert22}sdfsdf{var}";
$suchmuster = '/{(\w*)(:(\w*))*}/';
preg_match_all($suchmuster,$string,$fundstellen,PREG_SET_ORDER);
var_dump($fundstellen);
?>
Code:
array(3) { [0]=> array(3) { [0]=> string(29) "{var:wert1:wert2:wert3:wert4}" [1]=> string(3) "var" [2]=> string(6) ":wert4" } [1]=> array(3) { [0]=> string(20) "{var2:wert21:wert22}" [1]=> string(4) "var2" [2]=> string(7) ":wert22" } [2]=> array(2) { [0]=> string(5) "{var}" [1]=> string(3) "var" } }
Danke
nougad
Kommentar