Php echo,其中;和';在字符串中使用了什么?

Php echo,其中;和';在字符串中使用了什么?,php,javascript,html,string,Php,Javascript,Html,String,字符串如下所示: <form id="unban" method="post" action="unban.php?uid=<? echo $uID; ?>"> <input type="hidden" name="name" value="" /> <a onclick="document.getElementById('unban').submit();">UnBan</a

字符串如下所示:

<form id="unban" method="post" action="unban.php?uid=<? echo $uID; ?>">
                <input type="hidden" name="name" value="" /> 
                <a onclick="document.getElementById('unban').submit();">UnBan</a>
                </form>

您可以在PHP if块中编写普通HTML-只需关闭并重新打开PHP标记:

<?php
if($something == $somethingelse) {
    ?>
    <form id="unban" method="post" action="unban.php?uid=<?php echo $uID; ?>">
    ...
    </form>
    <?php
}


我喜欢用字符串中的变量进行回音的最干净的方式如下:

echo "This is a string with a {$variables["variable"]} in it. If I have to use another double-quote within this string I'll escape it with a \"backslash\".";
我通常完全避免混合单引号和双引号(除非必要时,比如JavaScript函数,以帮助减少混淆)

您的HTML可以这样编写:

echo "<form id=\"unban\" method=\"post\" action=\"unban.php?uid={$uID}\">
    <input type=\"hidden\" name=\"name\" value=\"\" /> 
    <a onclick=\"document.getElementById('unban').submit();\">UnBan</a>
</form>\n";
echo”
UnBan
\n”;

生成的回显字符串将具有自然字符并具有适当的空白格式。

使用反斜杠转义引号:\'

无论何时输出更复杂的内容或需要两种类型的引号,都应使用字符串:


echo你为什么不跳过引号呢

echo "\"", '\''; // "'

如果这是不可能的,检查PHP的语法。第三种方法是关闭if语句中间的PHP块并直接输出HTML。


哦,你也可以使用:-)

你可以用\eww来逃避引用,
@animuson不,你不应该,@animuson有什么问题,只是我从来没有这样做过,或者推荐它。很难找到变量的位置,而且往往是完全错误的。通常需要对变量进行转义以避免XSS之类的情况。在我看来,串联或多个回显参数是一种可行的方法。我发现这种方法可以更容易地跟踪变量的位置(Notepad++以白色突出显示这些变量,而不是将它们保持为灰色)。为什么它“常常”是完全错误的?这是如何阻止您转义变量的?您可以在分配它们时对其进行转义,也可以在希望内联转义时中断字符串。在我看来,最好在需要转义的特定上下文中使用转义。我可能希望数据以干净的方式保存以供以后使用,并在分配时转义它意味着如果不制作第二个副本,这是不可能的。我选择这样做:
echo'Some text',htmlspecialchars($somevar),'Some more text'echo "<form id=\"unban\" method=\"post\" action=\"unban.php?uid={$uID}\">
    <input type=\"hidden\" name=\"name\" value=\"\" /> 
    <a onclick=\"document.getElementById('unban').submit();\">UnBan</a>
</form>\n";
echo <<<HTML

    <tr><td> $row[username] </td><td>
    $banBool </td><td> $status </td><td>  $row[full_name] 
    </td></tr>

HTML;
echo "\"", '\''; // "'