phpbar.de logo

Mailinglisten-Archive

[php] Wert aus einem String auslesen

[php] Wert aus einem String auslesen

Andreas Heigl a.heigl at wdv.de
Die Okt 18 15:08:19 CEST 2005


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