使用PHP为div中的图像添加样式属性

时间:2011-11-25 09:22:44

标签: replace preg-replace

我有一个简报,其中包含一个名为nieuwsbrief-tekst的div中的一些图片。我想找到这些图像并添加内联css代码。我可以找到preg_match的div,我也可以找到图像标记本身,但是将style=""添加到图片标记到目前为止还没有用。

还有一个nieuwsbief-tekst div,这些div是不同的内容块,因此有3个或4个。我尝试了preg_replace,但这没有效果。

有关如何处理此问题的任何提示或建议?

所以html看起来像这样,我只想将样式属性添加到div中的图像。

HTM代码:

<div class="nieuwsbrief-tekst">lorum ipmsum</div>
<div class="nieuwsbrief-tekst"><img src="#"></div>
<div class="nieuwsbrief-tekst">lorum ipmsum</div>
<div class="nieuwsbrief-tekst"><img src="#"></div>

PHP代码:

if(preg_match_all('/<div class="nieuwsbrief-tekst">(.*?)<\/div>/is', $var, $matches)) {

foreach($matches[0] as $match) {

    if(preg_match('/<img[^>]+>/is', $match, $match_img)) {

        echo 'image found';

        $pattern = '/<img[^>]+>/is';
        $replacement = '<img style="float:left; margin:0 10px 10px 0;';
        $test = preg_replace($pattern, $replacement, $match_img);

    }
}

echo '<pre>';
print($test);
echo '</pre>';

}

谢谢:)

1 个答案:

答案 0 :(得分:0)

这应该可以实现你想要的目标

$pattern = "/<div class=\"tmp\">(\\w+)?<img ([^>]+)>(\\w+)?<\/div>/is";
$replacement = "<div class=\"tmp\">\\1 <img style=\"float:left; margin:0 10px 10px 0; \\2 /> \\3</div>";

$str = preg_replace($pattern, $replacement, $str);
echo $str;

只需更改tmp以满足您的需求:)