在 PHP 中格式化长 HTML 字符串的最佳方法是什么?
我知道这确实是一个主观问题,但为了最佳实践(和可读性),我似乎无法找到格式化长 HTML 字符串的最佳方法。我通常这样做:
echo '
<div>
<p>Content Inside</p>
<div class="subbox">
<ul>
<li>etc.</li>
<li>etc.</li>
<li>etc.</li>
<li>etc.</li>
</ul>
</div>
</div>
';
但我仍然不喜欢结果,特别是如果它出现在一大段代码的中间。就是感觉很乱。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我更喜欢像 Code Igniter 这样的 MVC 架构,用于将表示与逻辑分离。基本上,所有模板都是单独存储的,并且使用 描述的 PHP 备用语法结构在这里设置您的 HTML 格式。
I prefer an MVC architecture like Code Igniter for separating presentation from logic. Basically, all your templates are stored separately and you use the PHP alternate syntax structures described here to format your HTML.
最好的方法是使用模板系统,您可以将逻辑与表示分离。在模板中你只有这样的东西:
The best way is to use a templating system where you can separate your logic from presentation. In the template you'd only have stuff like:
你可以跳出 PHP 并直接输入 HTML:
如果你所做的只是一个 echo/print,我认为这会干净得多。此外,您不需要在 HTML 本身中遍历和转义单/双引号。
如果需要将 HTML 存储在变量中,可以使用 HEREDOC:
You can jump out of PHP and input HTML directly:
If all you're doing is an echo/print, I think this is much cleaner. Furthermore, you don't need to run through and escape single/double quotes within the HTML itself.
If you need to store the HTML in a variable, you could use HEREDOC:
为什么不直接将 PHP 嵌入到 HTML 中呢?这就是 PHP 最初设计的工作原理。
Why not just embed your PHP in the HTML? That's how PHP was originally designed to work.
老派 Perl 风格 heredoc 也可以:
使用多个
块更干净,但是如果您在类定义或其他内容中,则定界符可能不那么尴尬(尽管从类打印 HTML定义只不过是尴尬的)。
Old school Perl-style heredoc works too:
Using multiple
<?php ?>
blocks is cleaner, but if you're in a class definition or something, a heredoc might be less awkward (though printing HTML from a class definition is nothing but awkward).我会这样做:
I would do it like this: