[Dresden-pm] Findeposition merken und Auswerten

Andreas Kunert akunert at main-rheiner.de
Mon Okt 31 03:52:13 PST 2005


Hallo allerseits,

ich habe heute ein kleines Problem mit dem Suchen und Merken.
Beispiel:
$Text = "Hier steht ein Text mit mehreren BU-Tags, die geparst werden 
sollen. <BU_2>Bildunterschrift 2</BU_2> und eine weitere 
<BU_2>Bildunterschrift 1</BU_1> und noch ein wenig blabla";

Ich will nun die Tags mit den BU-rausfiltern und mir dabei die Position 
merken, wo ich die gefunden habe. Hintergrund ist, dass in einem 
weiteren <IMAGES></IMAGES>-Tag die Bildpfade stehen.

Problem dabei ist, dass die Bilder in der Reihenfolge der BU-geparst 
werden, die Position der BU-Tags leider nicht immer chronologisch sind. 
(Erst BU_1 dann BU_2 ff..)

Momentan parse ich so.
$bu_array = array("BU_1","BU_2" ...);

foreach(@bu_array){
                    $bu_tag = $_;
                    # print "suchtag = $suchtag\n";
                    if($artikel =~ /.*?<$bu_tag>(.*?)<\/$bu_tag>.*?/i) {
                        $tmptxt = $1;
                        $bu .= $tmptxt."XXXX";
                    } else { $tmptxt = ""; }

In tmptxt steht als Ergebnis meiner derzeitigen Parserei $bu = 
$bu_1."XXXX".$bu_2 .....
Die Bilder wären aber Bild2,Bild1 in der Reihenfolge..

Gibts eine Möglichkeit, beim Suchen die Position des Treffers zu merken 
und danach dann den $bu zusammenzubauen?
Also in der foreach-Schleife zu sagen, die Treffer nach der 
Findeposition zusammenzusetzen???

Ich hoffe, ich habe mich verständlich ausgedrückt....

GRuß Andreas