Hallo,
ich habe einen regulären Ausdruck gebildet, der meine Dateien nach img-Tags durchforsten soll. Ziel soll es sein das img-Tag in drei Teile aufzuspalten
a) alles vor dem "src" Attribut
b) Inhalt des "src" Attributs
c) alles nach dem "src" Attribut
Hier mein Ausdruck:
_____________________________________________________
(<img )(((class|id|style|title|alt|align|alt|border|height|name|usemap|width|onmouseover)="[\w\-"';:,\.\(\)=/ ]*" )*)src="([\w/\-\. ]*)"(([ ]*(class|id|style|title|alt|align|alt|height|name|usemap|width|onmouseover)="[\w\-"';:,\.\(\)=/ ]*"[ ]*)*)( />)
_____________________________________________________
Für eine bessere lesbarkeit ist diese Version wohl besser geeignet:
_____________________________________________________
(<img )
(
(
(class|id|style|title|alt|align|alt|height|name|usemap|width|onmouseover)
="[\w\-"';:,\.\(\)=/ ]*"
)*
)
src="
([\w/\-\. ]*)
"
(
(
[ ]*
(class|id|style|title|alt|align|alt|border|height|name|usemap|width|onmouseover)
="[\w\-"';:,\.\(\)=/ ]*"[ ]*
)*
)
( />)
_____________________________________________________
Genutzt wird die Funktion ereg_replace(...) von PHP. Wenn ich aber meinen Ausdruck verwende wird der komplette Datensatz gelöscht, ich versteh einfach nicht warum, zumal in meinem Regex-Tester (The Regex Coach) der Ausruck und der Datensatz richtig zusammenarbeiten.
Hab ich vielleicht die Backslashes falsch auskommentiert. Ich seh leider keinen Fehler und PHP hilft mir da nicht unbedingt weiter "Warning: ereg_replace()... REG_ERANGE in c:........php on line x"
Weiß jemand woran es liegen könnte?
Grüße, Matthias