Mailinglisten-Archive |
thomas at klf.de schrieb: >> Meinst du sowas wie preg_match()? >> oder eher strstr() oder eine der verwandten Funktionen? >> >> Was soll den damit passieren? > > Angenommen, jemand möchte jetzt ein Bild einfügen, würde er (bzw. die > Eingabemaske) folgenden Code einfügen > > ... [IMG ID=35] ... [...] > Jedenfalls möchte ich aus diesem Segment jetzt quasi den Wert von ID > ermitteln. Als beste Möglichkeit fällt mir da ein preg_replace ein, was > mir dann die 35 als Rest überlassen würde (also quasi "/[IMG ID=(35)]" > -> "$1" - nur als Anhaltspunkt, der Ausdruck selbst sieht natürlich > anders aus) > > Ich könnte auch aus einem [IMG ID=35 SIZE=LARGE] nur das "ID=35 > SIZE=LARGE" übriglassen und die Angaben dann über ein paar > array_explodes (erst über " " und dann über "=") weiter > auseinandernehmen, aber vielleicht hast du (oder jemand anderes) eine > elegantere Lösung parat. Was (außer der Geschwindigkeit) spricht gegen preg_match_all()? Als regExp nimmst du sowas wie '/\[IMG ([A-Z]+?=[a-zA-Z0-9]+)\]/' Das würde dir zumindest alle vorkommen innerhalb des Textes rausziehen. Alternativ eine Verschachtelung in folgender Art: preg_match_all ( '/\[.+?\]/mi', $deinText, $ergebnisse, PREG_PATTERN_ORDER ); foreach ( $ergebnisse[1] AS $image ) { preg_match_all ( '/([A_Z]+?)=([a-zA-Z0-9]+?)/', $image , $imageErgebnis) /* und jetzt hast du folgendes Array Array ( [0] => Array ( [0] => ID=35 [1] => SIZE=LARGE ) [1] => Array ( [0] => ID [1] => SIZE ) [2] => Array ( [0] => 35 [1] => LARGE ) ) Damit kannst du jetzt weiterarbeiten */ } Grüße Andreas -- wdv Medien & Kommunikation GmbH & Co. OHG Mediendatenverarbeitung Andreas Heigl Siemensstrasse 6 61352 Bad Homburg Germany Telefon +49-(0)6172-670-185 Telefax +49-(0)6172-670-181 www.wdv.de
php::bar PHP Wiki - Listenarchive