Pretty-print HTML via PHP without validation?

余生颓废 提交于 2019-12-05 22:02:15

问题


I'd like to automatically pretty-print (indentation, mostly) the HTML output that my PHP scripts generate. I've been messing with Tidy, but have found that in its efforts to validate and clean my code, Tidy is changing way too much. I know Tidy's intentions are good but I'm really just looking for an HTML beautifier. Is there a simpler library out there that can run in PHP and just do the pretty-printing? Or, is there a way to configure Tidy to skip all the validation stuff and just beautify?


回答1:


The behaviour that you've observed when using Tidy is a result of the underlying use of DOM API. Instead of manipulating the provided source code, DOM API will reconstruct the whole source, thus making fixes along the way.

I've written Dindent, which is a library that uses Regex. It does not do anything beyond adding the indentation and removing whitespaces. However, I advise against using this implementation beyond development purposes.




回答2:


I've never used Tidy but it seems pretty customizable.

Here's the quick reference of configuration options: http://tidy.sourceforge.net/docs/quickref.html

But really, with tools like Firebug, I've never seen the need to Tidy HTML output.




回答3:


Since you do not want to have it validate for whatever reason, I will not suggest htmlpurifier ; ). Why not just use an IDE to get everything indented nicely, like Alt-Shift-F in Netbeans.




回答4:


Facing the same problem i currently use a combination of two commands:

 cat template-home.php | js-beautify --type html | prettier --parser php

js-beautify formats the html bits and prettier formats the php code



来源:https://stackoverflow.com/questions/4527681/pretty-print-html-via-php-without-validation

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!