Прошло много времени с тех пор, как этот вопрос впервые был задан, но я все еще вижу необходимость опубликовать этот ответ, чтобы помочь людям с той же проблемой.
Ни одно из этих решений не было адаптировано для меня, поэтому я придумала следующее решение: Использование output_buffer
.
Функция ob_start
принимает обратный вызов в качестве аргумента, который применяется квся строка перед выводом.Поэтому, если вы удалите пробел из строки перед очисткой выходных данных, все готово.
/**
* Remove multiple spaces from the buffer.
*
* @var string $buffer
* @return string
*/
function removeWhitespace($buffer)
{
return preg_replace('/\s+/', ' ', $buffer);
}
ob_start('removeWhitespace');
<!DOCTYPE html>
<html>
<head></head>
<body></body>
</html>
ob_get_flush();
Выше будет напечатано что-то вроде:
<!DOCTYPE html> <html> <head> </head> <body> </body> </html>
Надеюсь, это поможет.
КАК ИСПОЛЬЗОВАТЬ ЭТО В ООП
Если вы используете объектно-ориентированный код в PHP, вы можете использовать функцию обратного вызова, которая находится внутри объекта.
Если у вас есть класс с именем, например, HTML , вы должны использовать эту строку кода
ob_start(["HTML","removeWhitespace"]);