我有一些跨越EOF的HTML:
$message = <<<EOF
<p style="font-size: 9px; font-family: Verdana, Helvetica; width: 100%; text-align:left;">Clcik to remove <a href="http://www.mysite.com/remove.php?email=' $email '">clicking here.</a></p>
EOF;
我试过单引号,单引号。逃避双引号。似乎找不到合适的组合。任何帮助赞赏。
TIA
答案 0 :(得分:2)
<?php
$email="test@example.com";
$message = <<<EOF
<p style="font-size: 9px; font-family: Verdana, Helvetica; width: 100%; text-align:left;">Click to remove <a href="http://www.mysite.com/remove.php?email=$email">clicking here.</a></p>
EOF;
echo $message;
?>
但是,从你的例子来看,我没有看到HEREDOC的目的。 为什么不呢:
<p style="font-size: 9px; font-family: Verdana, Helvetica; width: 100%; text-align:left;">Click to remove <a href="http://www.mysite.com/remove.php?email=<?=$email?>">clicking here.</a></p>
答案 1 :(得分:1)
你的代码应该可以工作,但是对于Heredocs [实际上这个语法实际上就是这个],你通常不需要转义任何东西,或者使用特定的引号。 @ showdev的第一个例子就是这个。
但是,sprintf()
找到了更清晰,更可重用的语法。
$email1 = "bill@example.com";
$email2 = "ted@example.com";
$message_frame = '<p>Click to remove <a href="http://www.mysite.com/remove.php?email=%s">clicking here.</a></p>';
$message .= sprintf($message_frame, $email1);
$message .= sprintf($message_frame, $email2);
/* Output:
<p>Click to remove <a href="http://www.mysite.com/remove.php?email=bill@example.com">clicking here.</a></p>
<p>Click to remove <a href="http://www.mysite.com/remove.php?email=ted@example.com">clicking here.</a></p>
*/
最后:大型的内联style=""
声明真的打败了CSS的目的。
答案 2 :(得分:0)
Heredoc通常用于较长的字符串,甚至可能是多个想法,您可能希望将其分割为单独的行。
正如tuxradar所说:“为了让人们能够轻松地从PHP中编写大量文本,但不需要经常逃避事情,开发了heredoc语法”
<?php
$mystring = <<<EOT
This is some PHP text.
It is completely free
I can use "double quotes"
and 'single quotes',
plus $variables too, which will
be properly converted to their values,
you can even type EOT, as long as it
is not alone on a line, like this:
EOT;
?>
在你的情况下,简单地回显你的字符串会更有意义。
$message = '<p style="font-size: 9px; font-family: Verdana, Helvetica; width: 100%; text-align:left;">Clcik to remove <a href="http://www.mysite.com/remove.php?email=' $email '">clicking here.</a></p>';
echo $message;