使用preg_replace修剪html标记内的所有空格

时间:2014-10-08 08:33:53

标签: php regex preg-replace smarty

似乎我有一个非常特殊的问题,因为到目前为止我在网上找不到任何相关的解决方案。我有Smarty模板,经过一些细微的修改后,我几乎可以用trimwhitespace过滤器删除所有不必要的空格。但是我无法摆脱标签中的前导空格。请看下面两个例子:

<h1>A headline without any leading whitespace</h1>

<h1>
  A headline like it would be formatted by an IDE
</h1>

我的问题是Smarty trimwhitespace输出过滤器没有修剪第二个例子。当我使用CSS在标题之前放置一个图标时:之前,图标和第二个示例之间有空格,但在应用于第一个示例时则没有。

是否可以使用preg_replace修剪第二个示例,使其在HTML中看起来与第一个示例相同?

2 个答案:

答案 0 :(得分:2)

(?<=<h1>)\s*|\s*(?=<\/h1>)

试试这个。看看演示。

http://regex101.com/r/hQ1rP0/61

答案 1 :(得分:0)

这个功能应该有所帮助。

function anyname($string)
{
return preg_replace(array('/\s{2,}/', '/\n/'), '', $string);
}