suchen und ersetzen ?!?

Begonnen von pyr0, 23 Oktober 2014, 10:57:20

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

pyr0

MOin an alle  :morning:

Mal ne Frage: ich möchte in meinem Content von ein Modul nach folgedem Inhalt suchen, wo bei die Angabe zu dem Bild und der Grösse dynamiach sind


<img alt="" height="90" src="media/images/Penguins.jpg" width="120" />


und so umstellen, dass

<a href="media/images/Penguins.jpg" rel="lightbox"><img alt="" height="90" src="media/images/Penguins.jpg" width="120" /></a>


Ich weiss das das bestimmt mit regulären Ausdrücken geht, nur bekomme ich es nicht hin.
Mein theoretischer Ansatz:
- such mal nach <img und ersetze durch <a href="???" rel="lightbox">
das bekomme ich hin nur feht mir ja jetzt noch die gesamte Bildinfo also der Link zum Bild, dazu kommt ja noch dass das ganze html Tag vom Link auch noch geschlossen werden muss  :gruebel:

Hat jemand ne Idee bzw. ne Lösung dafür

Gruss pyr0
Kein Support über PN, Mail !
Bitte die Fragen im Forum stellen, nur so helfen die Antworten auch den anderen Usern.
Bitte auch die Boardsuche nicht vergessen, oft ist genau dein Problem schon an anderer Stelle gelöst worden!

Webfan

#1
Hallo pyro,
ZitatIch weiss das das bestimmt mit regulären Ausdrücken geht,
Bis zu einem gewissen Grade geht das, sofern die img tags sich aber unterscheiden können (z.b. unterschiedliche Attribute Reihenfolge/Präsenz, etc...), ist es vielleicht einfacher und auch programmatisch sicherer einen "qualifizierten" Parser zu verwenden.
Mein Webfan Modules Setup Modul bringt den "simple_html_dom" parser mit, wecher im Netz auch standalone erhältlich ist.

Beispiel:
foreach($dom->find('img') as $e){
$e->outertext =
<a href="'.$e->src.'" rel="lightbox">'.$e->outertext.'</a>
;
}

Der simple_html_dom Parser verarbeitet auch fehlerhaft formatiertes HTML einigermaßen brauchbar, das bisher einfachste und praktischste was ich gefunde habe.
Sofern komplexere DOM Modifikationen erforderlich sind, ist so ein parser einer reinen regex Lösung vorzuziehen und wohl auch perfomanter!?!

Viele Grüße
Till

EDIT: Und wo Du grad dabei bist Deine img tags zu bearb eiten würde ich auch die height usw. attribute in ein style Attribut auslagern.