Jump to content

Hilfe zu preg_match_all / preg_replace


Recommended Posts

Hallo,

ich bräuchte dringend Hilfe zu regulären Ausdrücken.


Folgende Situation:

In einem Text sollen zahl ersetzt werden durch ein bestimmtes Bild aus einer Bilderdatenbank (mit der id=zahl).

Bisher bin ich nur soweit gekommen, dass das erste Bild durch den richtigen HTML-code ersetzt wird und alle weiteren xy durch dasselbe Bild ersetzt werden statt mit den darauf folgenden Bildern.


Also statt

3

14 etc.

ersetzt er mir für 14 auch 3 usw.


folgender Versuch:

",$eintrag);
}
}
?>

 

Wär klasse wenn mir da jemand weiterhelfen könnte!

Link to post
Share on other sites
Original von DEC

zeile 5, vor dem trefferX fehlt z.b. das dollarzeichen $...



falsch rauskopiert ... daran liegt es nicht.

Wie gesagt, er ersetzt ja "richtig" ... nur halt immer alle mit den Daten (der id) aus dem ersten Eintrag

Link to post
Share on other sites

vielleicht stimmt was mit den schlüsseln nicht...

schon mit $treffer[$i][2] probiert? werde beim php-manual nicht ganz schlau draus, was den nun in den treffer-arrays so gespeichert wird ;)


am besten mal print_r($treffer) zwischenschalten (vor der schleife), dann siehste was rauskommt und warum es nicht geht...

Link to post
Share on other sites

hmmm, dir ist aber bewußt dass dieser Code-Teil eine Performancebremse darstellt?

Pro Bild ein Query, das kann ganz leicht danz viel werden.

Jedesmal in der for() count($treffer[0]), solange $treffer[0] nicht in der Schleife geändert wird ist das eigentlich nicht notwendig (und selbst da gäbe es noch andere Lösungen)


Ich würde dir zu folgendem raten:

ein preg_replace mit dem Modifiern esiU

im replace-Teil eine Funktion aufrufen, zB get_pic()




in der Funktion get_pic() liest du einmal alle Bilder in ein Array ein, der Key des Arrays ist die ID des Bildes.

als Rückgabe lieferst du den Dateinamen des Bildes ;-)
';
}
?>

Statt $pic['dateiname'] kannst du natürlich die URL zum Bild nehmen ;-)


Du liest dann zwar einmal alle Bilder aus und schreibst sie in ein Array, das ist aber bei mehr Bildern sicher noch immer schneller als ein Query pro angezeigtem Bild :-)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...