PHP - 可以将一长串HTML包装在PHP变量中吗?

时间:2010-09-16 12:38:05

标签: php variables

可以这样做 - 用一个PHP标签打开一个变量,然后关闭PHP标签,但保持变量打开,这样下面的所有内容都变成了变量的值?或者PHP变量大小/字符是否有限制?

<?php $content = " ?>

a bunch of content goes here <br />
with lots of HTML tags and JS scripts

<?php "; ?>

7 个答案:

答案 0 :(得分:6)

您可以使用HEREDOC / NOWDOC

$content = <<< 'HTML'

a bunch of content goes here <br />
with lots of HTML tags and JS scripts

HTML;

output buffering,例如

<?php ob_start(); ?>

foo

<?php
    $var = ob_get_clean();
    var_dump($var); // will contain foo and surrounding whitespace

答案 1 :(得分:6)

不,但你可以用heredoc

做一些
$content = <<< END
some content here<br/>
<script type="text/javascript">
alert('hi');
</script>

END;

答案 2 :(得分:4)

您的代码所做的是在变量?>中存储以<?php开头并以$content结尾的字符串。那可能不是你想做的?如果你以后回复这样的字符串,你很可能会因为这些php标签而出错。

正如其他答案所述,heredoc将是一个解决方案,但一般来说,你应该尽量避免这种情况,你必须在变量中存储很长的html序列。而是使用视图文件并在那里注入一些动态内容或使用某种包含。

所以,根据你真正想做的事情,你的选择是:

  1. heredoc
  2. $content = "<html>markup here</html>";
  3. 通过输出缓冲
  4. 使用视图(查找有关MVC模式的信息,您也可以开始使用VC)
  5. 使用包含

答案 3 :(得分:3)

答案 4 :(得分:1)

$content = 'large amount of text';

$content = 'text';
$content .= 'other text';
$content .= 'end text';

答案 5 :(得分:0)

尝试:

<?php ob_start (); ?>

.... html

<? 
$content = ob_get_clean (); 
?>

有关详细信息,请参阅http://pl.php.net/manual/en/book.outcontrol.php

答案 6 :(得分:0)

是的,你可以做到。

双引号内的结束标记:" ?>"将不会被特别处理。它们只是字符串内容。

  

PHP变量大小/字符是否有限制?

没有。你可以尽可能多地填充变量,直到你的记忆已满。