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



我要用preg_replace和str_replace从xml文件中删除几行代码

preg_replace('/(<!DOCTYPE(.*?)<fields )/s', '<fields ', $readSettings);

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

不是100%确定你在问什么。你能张贴一个HTML的例子后,你得到RegEx?

这将删除多余的空白。

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

你也可以看看PHP DOM (PHP Manual)。加载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();

最新更新