PHP用正则表达式去掉HTML中的空白字符

应用场景是要把一段HTML存数据库,为了节省空间,删掉无用的空白字符。

最终用以下正则替换实现,效果很好,主要还是用正则表达式的零宽断言。

preg_replace('/\s(?![^<>]+>)/', '',$html);

刚开始觉得HTML中的空格都没啥用,可以去掉所有的\s,结果全乱了,发现标签内的空格还是有用的,比如这里的空格就得留着<style type=”text/css”>,不过标签外的空格肯定是没用的, 所以前面的正则就是匹配不在标签中的空白符。

 

发表评论