很难解释,如何将HTML内容分配给PHP变量。 HTML内容不在PHP script.as
中<?php $a_div = ?><div>Contents goes <b>here</b></div>
答案 0 :(得分:22)
尝试使用ob_get_contents:ob_get_contents()
或ob_get_clean()
<?php ob_start(); ?>
<div>Contents goes <b>here</b></div>
<?php $contents = ob_get_contents(); ?>
答案 1 :(得分:11)
如果原始HTML ,其中没有PHP,则存储在单独的文件中,它只是
$a_div = file_get_contents('email.html');
如果它是PHP文件与HTML混合使用PHP,那么使用输出缓冲包含它,就像在Robik的回答中一样。
ob_start();
include 'mail.template.php';
$a_div = ob_get_contents();
但如果它相对较小,我会使用HEREDOC
$a_div = <<<HERE
<div>Contents goes <b>here</b></div>
HERE;
答案 2 :(得分:6)
如果需要(通常我使用的是html模板,用php替换占位符)... 有两种方法:
$testVar = <<<EndOfHtml
<div style="border: 48px solid red">test</div>
EndOfHtml;
print $testVar
更简单的方法,不是太优雅 - 用单引号包装HTML代码。所以你不必逃避任何双重报价:
$test_var = '<div style="border: 48px solid red">test</div>'
有用吗? : - )
答案 3 :(得分:2)
您是否在寻找以令牌终止的Block-Strings? http://www.phpf1.com/tutorial/php-heredoc-syntax.html
我能做的最好。不幸的是,你的问题有点模糊。
答案 4 :(得分:0)
您可以使用DOMDocument解析html文件并获取所需内容。
答案 5 :(得分:0)
有点晚了,也不完全是要求的内容,但是如果您要乱码渲染页面(例如使用模板),也可以用函数包装该部分并调用它来渲染放在所需位置。
<?php function RenderFooter() { ?>
<footer>some footer</footer>
<?php } ?>
<h1>Some header</h1>
<main>Some content</main>
<?= RenderFooter(); ?>