2011-08-28 30 views
1

我试图使用的preg_replace来替换<br />当它出现3次或更多次的标记,它应该<br /><br />的preg_replace - 更换出现3次或更多次

我试图用这个来代替:任何机构都知道我的代码有什么不对?

所以,只是为了确认... <br /><br /><br /><br /><br /><br /><br /><br />应与<br /><br />

+0

您的代码似乎好工作:HTTP: //codepad.org/9jG5ljjn –

+0

向我们显示您的脚本无法使用的输入。 – tripleee

回答

1

你的正则表达式的工作就好了更换,问题是,如果你遇到的问题:

  • <br>
  • <br -multiple spaces- >
  • <br/>
  • <br -multiple spaces- />
  • <br /> <br />音符之间的空间(S)的2 BR的
  • <br> -newlines- <br>

所以这里有一个解决方案:

$text = '<br /><br><br /><br ><br /><br><br/><br /><br><br> 
<br/> 

<br/> 
'; 
$text=preg_replace('/(<br\s*\/?>\s*){3,}/', '<br /><br />', $text); 
var_dump($text); // output: string '<br /><br />' (length=12) 

Online demo

相关问题