如何在echo函数中转义PHP?

时间:2011-06-09 20:39:07

标签: php

我拥有的是:

function add_email_form () {

 echo "<form class=\"email-me-form\" id=\"initialize\" action=\"<?php echo $_SERVER[PHP_SELF] ?>\" method=\"post\" name=\"contact_me\">\n";

} 

如何使语法正确?

3 个答案:

答案 0 :(得分:6)

除非您需要,否则请勿使用双引号。使用单引号,'。这样,除了像\ n之类的控制字符之外,你不必转义任何东西,在这种情况下,请删除双引号。所以上面就是:

echo '<form class="email-me-form" id="intialize" action="'.$_SERVER['PHP_SELF'].'"
      method="post" name="contact_me">'."\n";

(换行添加到我不会导致水平滚动条) 你不需要做htmlspecialchars()看起来像你想要的。

您不需要(事实上,不能)在PHP语句中调用“<?php echo?>”。只有当你在PHP之外时,才有效。在这种情况下,只需与.连接。

正如评论中所述,你应该在字符串时引用数组键,否则PHP会发出警告并且可能会混淆。

答案 1 :(得分:1)

像这样:

echo "<form class=\"email-me-form\" id=\"initialize\" action=\"",
  htmlspecialchars($_SERVER['PHP_SELF']),
  "\" method=\"post\" name=\"contact_me\">\n";

答案 2 :(得分:0)

function add_email_form () {
    echo "<form class=\"email-me-form\" id=\"initialize\" action=\"" . $_SERVER[PHP_SELF] . "\" method=\"post\" name=\"contact_me\">\n";
}