用其内容替换div

时间:2013-02-17 06:59:21

标签: php regex html-parsing

我正在尝试过滤html代码

代码包含一个带行类的div

我想用那些内容替换这些div

代表:

<div class="row anotherClass">some html code 1</div>
<div class="row anotherClass">some html code 2</div>
<div class="row anotherClass">some html code 3</div>

输出应该是这样的

some html code 1
some html code 2
some html code 3

我已经写了下面的表达式(我对正则表达式并不是很好)但是输出html仍然没有很好地过滤,有些时候div开始仍然存在,有些时候div结束仍然存在

$output = preg_replace_callback('/<div class="row (.*?)">(.*)<\/div>/s', function ($matches) {
            return $matches[2];

        }, $output);

1 个答案:

答案 0 :(得分:0)

你是说这个吗?

<?php

$html = '<div class="row anotherClass">some html code 1</div>
<div class="row anotherClass">some html code 2</div>
<div class="row anotherClass">some html code 3</div>';

$reg = '(<div class="row anotherClass">(.*?)</div>)';
preg_match_all($reg, $html, $divs);

$div_contents = $divs[1];
$divs = $divs[0];

$replaced_html = $html;

for ($i=0; $i < count($divs); $i++) {
    $replaced_html = str_replace($divs[$i], $div_contents[$i], $replaced_html);
}

echo $replaced_html;

?>