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;

?>

しかし、あなたの例からは、ヒアドキュメントの目的はわかりません。なぜだけではないのですか?

<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

ヒアドキュメントは通常、長い文字列、または場合によっては複数の考えに使用され、別々の行にセグメント化する必要があります。

tuxradarは次のように述べています。「人々がPHP内から大量のテキストを簡単に記述できるようにするために、常に物事をエスケープする必要はありません。ヒアドキュメント構文が開発されました。」

<?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 に答える