日期:2014-05-17  浏览次数:20375 次

PHP正则-多个span标签问题

<span style="color: #ff0000;"><span style="font-size: medium;"><strong>This is fake headline</strong></span></span>
如何提取标签,让上面的代码变成
[color="color: #ff0000;"][font-size="medium;"]This is fake headline[/font-size][/color]

当<span style="color: #ff0000;"><span style="font-size: medium;">这两标签相互颠倒的时候,问题就来了,因为他们的结束标签都是一样的,让人抓狂,有什么解决方法么。


------解决方案--------------------
使用preg的贪婪模式
------解决方案--------------------
<?php

$str = '<span style="color: #ff0000;"> <span style="font-size: medium;"> <strong>This is fake headline </strong> </span> </span>';

preg_match_all('/<span style=".*?>/',$str,$o);

foreach($o as $e){
foreach($e as $l){
echo htmlentities($l).'<br/>';
}
}
?>

这样就能取到你所要的,然后再匹配一下(对上面的$l进行匹配)就可以了;