Liebe(r) ich,
$temp=preg_replace('/\<img(.*)(?!alt\=".*?")/i','<img alt=""$1',$temp);
das ist ungenügend. Im Grunde bräuchtest Du lookahead oder lookbehind, um festzustellen, dass am Ende Deines Tags kein alt-Attribut enthalten ist/war, um es dann nachträglich zu ersetzen.
Ich versuche etwas ins Blaue hinein (also ungetestet):
$gefunden = preg_match_all('~(?is)<img (?:(?!alt=").)+/?>~', $html, $imgs);
if ($gefunden) {
foreach ($imgs[1] as $img) {
$img_alt = str_replace('<img ', '<img alt="" ', $img);
$html = str_replace($img, $img_alt, $html);
}
}
Liebe Grüße,
Felix Riesterer.
--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)