是否可以在preg_replace / str_replace之后格式化源代码?

时间:2014-05-08 18:52:51

标签: php preg-replace

我使用preg_replace和str_replace

从xml文件中删除了几个代码行
preg_replace('/(<!DOCTYPE(.*?)<fields )/s', '<fields ', $readSettings);

替换完成后,我留下了一个空格所在的行。 http://prntscr.com/3hegmb第4和第5行 有没有办法在完成后重新格式化文件或完全删除行及其空间?

1 个答案:

答案 0 :(得分:1)

不是100%肯定你在问什么。您可以发布RegEx后获得的HTML示例吗?

这将消除多余的空白区域。

preg_replace( '~\s{2,}~', '', $str );

您还可以查看PHP DOM(PHP手册)。将HTML加载到其中,然后将preserveWhiteSpace和formatOutput设置为false。

<强>加成

preg_replace( '~\s+\n+\s+\n+~', "\n", $str );

我想会这样做。但正如前面提到的,你可以用PHP DOM做到这一点,它会更灵活。

$doc = new DOMDocument();
$doc->loadHTML( $html );
$doc->preserveWhiteSpace = true; // Or false?
$doc->formatOutput = true;
echo $doc->saveHTML();