从大型复杂的html部分创建变量

时间:2010-08-28 22:13:07

标签: php

我有几个大的(200多行)html我需要放在一个变量中,在循环中多次使用。逃避这个并且保持格式清洁变得非常混乱。无论如何设置像这个IF语句的变量?

<?php if($condition): ?> <p>html here</p> <?php endif; ?>

我知道它可能与外部文件有关,但我不想添加一系列包含来实现此目的。

6 个答案:

答案 0 :(得分:10)

使用heredoc表示法:

$html = <<<HTML
<div class="section">
    <h2>Header</h1>
    <p>Paragraph 1</p>
    <p>Paragraph 2</p>
</div>
HTML;

不用担心特殊字符,您可以根据需要重复使用该变量。

答案 1 :(得分:1)

您也可以使用heredocs逐字存储字符串。

答案 2 :(得分:0)

像往常一样使用花括号。

<?php if($condition) { ?> <p>html here</p> <?php } ?>

这也适用于循环等

<?php foreach($results as $record) { ?> 
  <p>html <?php echo $record['title']; ?>here</p> 
<?php } ?>

答案 3 :(得分:0)

不确定。看看这里:“Embedding PHP in HTML

<?php if(conditions): ?>
... HTML CODE ...
<?php endif; ?>

答案 4 :(得分:0)

如果您因任何原因需要将HTML分配给变量,还可以考虑使用heredoc或nowdoc http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

答案 5 :(得分:0)

这是一个极端的解决方案,但如果我正确理解你的问题,你可以使用输出缓冲。

<?php ob_start(); if($condition): ?> <p>html here</p> <?php endif; $var = ob_get_clean(); ?>

虽然我不建议在变量中存储大量的测试。