Bilder über regex filtern
Adam
- php
Hi,
ich möchte alle Bilder aus einem HTML-Text herausfiltern.
Ich benutze dafür die folgende Regex:
preg_match_all("@<img.*src\s*=\s*'"['"][^>]*@i",$Text,$Match)
Die Regex funktioniert richtig ich möchte aber, dass in $Match[0]
der ganze Pfad steht.
z.B. <img src="htttp.www.karl.org/bild.jpg">
Dann bekomme ich <img src="htttp.www.karl.org/bild.jpg".
Wie kann ich das beheben? Ist in der Regex etwas falsch?
Danke
Adam
Huhu Adam
Wie kann ich das beheben? Ist in der Regex etwas falsch?
Nein, schau Dir in der Doku nochmal an wie die Matches im Array abgelegt werden.
Index 0 ist immer der gesamte Match des Regexp.
Dann folgen die geklammerten Teilausdrücke.
In Deinem Fall also $Match[1].
Am besten Du lässt Dir das Array $Match mal per var_dump() ausgeben.
Dann sollte es verständlich werden.
Viele Grüße
lulu
Hi,
Wie kann ich das beheben? Ist in der Regex etwas falsch?
Nein, schau Dir in der Doku nochmal an wie die Matches im Array abgelegt werden.
Index 0 ist immer der gesamte Match des Regexp.
Dann folgen die geklammerten Teilausdrücke.
In Deinem Fall also $Match[1].Am besten Du lässt Dir das Array $Match mal per var_dump() ausgeben.
Dann sollte es verständlich werden.
Ja aber wenn ich die Klammern weglasse bekome ich immer noch das '>' weniger.
Adam
Huhu Adam
Ja aber wenn ich die Klammern weglasse bekome ich immer noch das '>' weniger.
Wieso Klammern weglassen?
Dein RegExp matched ja auch ausdrücklich keine '>' am Ende.
preg_match_all("@<img.*src\s*=\s*'"['"][^>]*@i",$Text,$Match);
Viele Grüße
lulu
ich möchte alle Bilder aus einem HTML-Text herausfiltern.
preg_match_all("@<img.*src\s*=\s*'"['"][^>]*@i",$Text,$Match)
Die Regex funktioniert richtig ...
Nein. Der funktioniert auch nicht bei mehreren img-Tags.
ich möchte aber, dass in $Match[0] der ganze Pfad steht.
z.B. <img src="htttp.www.karl.org/bild.jpg">
Dann bekomme ich <img src="htttp.www.karl.org/bild.jpg".
Wie kann ich das beheben? Ist in der Regex etwas falsch?
Ja. So ist er richtig: "@<img.*?src\s*=\s*'"['"].*?>@i"
Beachte die Fragezeichen und diese Information zu gierigen und genügsamen Suchmustern.