Hallo,
wie schon hier: https://www.forum-hilfe.de/showthread.php?p=366212 angesprochen, bastele ich mir gerade einen eigenen Parser.
Ich möchte nun HTML-Tags die ein Style-Attribut enthalten abfangen um die Style-Angaben wiederum zu filtern.
Dazu habe ich folgenden Code:
$string = preg_replace_callback("/<(.*?)style\s*=\s*[\'|'](.*?)[\'|'](.*?)>(.*?)<\/.*?>/i", style_replace, $string);
Gebe ich nun folgenden Code ein funktioniert das ganze wunderbar:
Als Ergebnis bekomme ich (durch print_r):
Array
(
[0] => <p style="text-align: left;">beliebiger Text</p>
[1] => p
[2] => text-align: left;
[3] =>
[4] => beliebiger Text
)
Wird allerdings folgender Code eingegeben gefällt mir das Ergebnis nicht mehr ganz:
Als Ergebnis kommt:
Array
(
[0] => <p style="text-align: right;"><span style="color: #ff0000;">beliebiger Text</span>
[1] => p
[2] => text-align: right;
[3] =>
[4] => <span style="color: #ff0000;">beliebiger Text
)
Das Problem liegt darin, dass er als Anfangs-Tag das "p" nimmt, als End-Tag jedoch das "span". Ich möchte nun irgendwie sicherstellen, dass Anfangs- und End-Tag genau gleich sind. Ich konnte allerdings leider nichts finden womit das funktionieren kann. Habt ihr da eine Idee ?