从 html 源代码中删除所有换行符

2022-08-30 12:11:10

好吧,我知道混淆是一个坏主意。但是我希望我所有的html代码都集中在一行中。所有的html标签都是通过PHP生成的,所以我认为这是可能的。我知道从正则表达式替换,但不知道如何做到这一点。如果我不清楚,这里有一个例子\n\r

$output = '<p>
              <div class="title">Hello</div>
           </p>';
echo $output;

在源查看器中显示为<p><div class="title">Hello</div></p>


答案 1

也许是这个?

$output = str_replace(array("\r\n", "\r"), "\n", $output);
$lines = explode("\n", $output);
$new_lines = array();

foreach ($lines as $i => $line) {
    if(!empty($line))
        $new_lines[] = trim($line);
}
echo implode($new_lines);

答案 2

你也许可以试试这个。

// Before any output
ob_start();

// End of file
$output = ob_get_clean();
echo preg_replace('/^\s+|\n|\r|\s+$/m', '', $output);

这应该,除非我搞砸了正则表达式,捕获所有输出,然后替换所有新行字符以及行尾和开头的所有空格。

如果您已经在变量中收集了所有输出,则当然可以直接使用最后一行,并跳过输出缓冲内容:)


推荐