1

我通过 PHP 生成了很多 HTML 代码,但我需要将它存储在一个变量中,而不是立即显示它。但我希望能够摆脱 PHP,所以我的代码不是一个巨大的字符串。

例如(但实际代码会大得多):

<?php
$content = '<div>
    <span>text</span>
    <a href="#">link</a>
</div>';
?>

我想做这样的事情:

<?php
$content = 
?>
<div>
    <span>text</span>
    <a href="#">link</a>
</div>
<?php
;
?>

但我知道这不会将 html 作为值返回,它只会将其打印到文档中。

但是有没有办法做到这一点?

谢谢!

4

6 回答 6

3

您可以使用输出缓冲

<?php
ob_start();
?>
<div>
    <span>text</span>
    <a href="#">link</a>
</div>
<?php
$content = ob_get_clean();
?>

或者稍微不同的方法是HEREDOC 语法

<?php
$content = <<<EOT
<div>
    <span>text</span>
    <a href="#">link</a>
</div>
EOT;
?>
于 2009-10-14T18:27:00.807 回答
0

试试这个:

<?php
$var = <<<EOD
my long string
EOD;
echo $var; 
?>

(编辑完成,但编辑速度比我快:))

于 2009-10-14T18:28:35.670 回答
0

在我看来,您应该研究一下Smarty之类的模板引擎。它可以帮助您消除将 HTML 硬编码到 PHP 文件中的一些丑陋之处,并且可以帮助使代码更易于管理。

于 2009-10-14T18:28:36.707 回答
0

您可以将 html 存储在 html 文件中并将该文件读入变量。

于 2009-10-14T18:28:39.650 回答
0

虽然在技术上仍然是一个字符串,但您可能会发现 PHP 的 heredoc 上的文档很有趣:

heredoc 语法

$content = <<<EOT

<div>
    <span>text</span>
    <a href="#">link</a>
</div>

EOT;
于 2009-10-14T18:29:27.563 回答
0

使用heredoc语法。

于 2009-10-14T18:32:26.443 回答