将HTML内容分配给PHP变量

Sha*_*imi 9 php

很难解释,如何将HTML内容分配给PHP变量.HTML内容不在PHP script.as中

<?php $a_div = ?><div>Contents goes <b>here</b></div>
Run Code Online (Sandbox Code Playgroud)

Rob*_*bik 25

尝试使用ob_get_contents:ob_get_contents()ob_get_clean()

<?php ob_start(); ?>
<div>Contents goes <b>here</b></div>
<?php $contents = ob_get_contents(); ?>
Run Code Online (Sandbox Code Playgroud)

  • 应该使用[`ob_get_clean`](http://www.php.net/manual/en/function.ob-get-clean.php)代替. (6认同)

You*_*nse 11

如果它的原始HTML,没有PHP,存储在单独的文件中,它就是这样

$a_div = file_get_contents('email.html');
Run Code Online (Sandbox Code Playgroud)

如果它是PHP文件与HTML混合使用PHP,那么使用输出缓冲包含它,就像在Robik的答案中一样.

ob_start();
include 'mail.template.php';
$a_div = ob_get_contents();
Run Code Online (Sandbox Code Playgroud)

但如果它相对较小,我会使用HEREDOC

$a_div = <<<HERE
<div>Contents goes <b>here</b></div>
HERE;
Run Code Online (Sandbox Code Playgroud)


HBu*_*itz 6

如果需要(通常我使用的是html模板,用php替换占位符)......有两种方法:

$testVar = <<<EndOfHtml
<div style="border: 48px solid red">test</div>
EndOfHtml;

print $testVar
Run Code Online (Sandbox Code Playgroud)

更简单的方法,而不是太优雅 - 用单引号包装HTML代码.所以你不必逃避任何双重报价:

$test_var = '<div style="border: 48px solid red">test</div>'
Run Code Online (Sandbox Code Playgroud)

有用吗?:-)