在PHP中,如何在不转义引号的情况下创建多行变量?

时间:2012-11-24 10:57:51

标签: php coldfusion

在CFML中有构造:

<cfsavecontent name="HTML_content">
    <div class="test_div" style="color:#FFF;">Test</div>
</cfsavecontent>

在PHP中,没有一些真正的hacky函数或转义双引号似乎没有办法做到这一点。我试图通过保存电子邮件内容并简单地邮寄它来在同一页面内创建电子邮件(大型html文档),但似乎没有办法在不使用$var = "\"bad code\""的情况下在PHP中执行此操作;

有人能指出我正确的方向吗?


我试过了下面的answer by deceze

$var = <<<HTML
    <div class="test_div" style="color:#FFF;">Test</div>
HTML;

但是我收到以下错误:

Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_END_HEREDOC or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\vhosts\jpl\pages\about\testimonials.php on line 29

对于其他困扰此事的人, HTML;在HEREDOCS示例末尾的部分需要在结尾处(没有标签,空格或任何东西)正确。

所以换行符 HTML; 不是换行符 [制表符或空格] HTML;

1 个答案:

答案 0 :(得分:1)

$var = '<div class="test_div" style="color:#FFF;">Test</div>';

$var = <<<HTML
    <div class="test_div" style="color:#FFF;">Test</div>
HTML;

引用字符串的方法很多...... http://php.net/manual/en/language.types.string.php

另外,请考虑将电子邮件内容放入单独的文件中,并include将其放在需要的位置。