Необработанный PHP не совместим с HTML (за исключением нескольких наиболее тривиальных случаев), и Tidy имеет только поверхностную поддержку.
Существует множество способов, которыми Tidy может вызвать ошибки в документе, потому что он не поймет, что генерирует PHP и как он взаимодействует с другой разметкой.
Чтобы получить правильные и надежные результаты, вы должны постобработать вывод только в формате HTML. Вы можете сделать это, добавив фильтр Tidy в PHP:
<?php
ob_start('ob_tidyhandler');
?>
Это повлияет на производительность во время выполнения, но для большинства сайтов это не проблема, поскольку Tidy работает довольно быстро.