将HTML内容分配给PHP变量

时间:2011-04-06 07:44:20

标签: php

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

<?php $a_div = ?><div>Contents goes <b>here</b></div>

6 个答案:

答案 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(); ?>