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