preg_replace函数删除HTML标签问题

preg_replace函数删除HTML标签问题

问题描述:

这是一个非常愚蠢的错误是什么,我在我的HTML做的,其实,我有很多的preg_replace函数删除HTML标签问题

<li class="MsoNormal" style="margin:0in 0in 0pt"> 
      <span style="font-family:'Calibri','sans-serif';font-size:11pt">May be required to work extra hours at month end to meet monthly deadlines. .</span> 
</li> 

我要替换像李所有这些标签,是横跨 - 所以输出将

“ - 可能是需要在月底加班,以满足每月的最后期限。”

我使用此代码

$a = preg_replace('/(<li[^>]*><span[^>]*>)(.*?)(<\/span><\/li>)/imsU',"-$2",$a); 

但它无法正常工作。请建议。

在此先感谢

+1

你''和''之间 – madfriend 2012-07-20 12:06:07

+0

换行符如果我请求任何帮助,为什么有人给它标志着负然后 – 2012-07-20 12:06:42

+0

我怎么会处理该换行符 – 2012-07-20 12:07:11

您的换行符不存在于您的正则表达式中。尤其是标签之间。正确的正则表达式是:

$a = preg_replace('/(<li[^>]*>(?:[\s]*)<span[^>]*>)(.*?)(<\/span>(?:[\s]*)<\/li>)/imsU', "-$2", $a); 

?:在这里留下的第二场比赛仍然秒。 (这就是所谓的非捕获分组)

你尝试strip_tags()?这是一个简单的方法做你想要什么,我想......