2

我有一些跨越 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

4

3 回答 3

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>
于 2013-01-16T17:58:35.503 回答
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 的目的。

于 2013-01-16T18:35:12.810 回答
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;
于 2013-01-16T18:46:01.313 回答