Php 在HTML echo中使用变量转义双引号

Php 在HTML echo中使用变量转义双引号,php,html,mysql,variables,addslashes,Php,Html,Mysql,Variables,Addslashes,对于包含HTML的echo中的变量,我应该在哪里添加斜杠以转义双引号 例如: echo "<input type=\"hidden\" name=\"id\" value=".$row['id']." />"; 使用htmlentities: echo "<input type=\"hidden\" name=\"id\" value=\"".htmlentities($row['id'])."\" />"; echo”“; 如何使用单引号,这样就不必转义任何引号。

对于包含HTML的echo中的变量,我应该在哪里添加斜杠以转义双引号

例如:

echo "<input type=\"hidden\" name=\"id\" value=".$row['id']." />";

使用
htmlentities

echo "<input type=\"hidden\" name=\"id\" value=\"".htmlentities($row['id'])."\" />";
echo”“;

如何使用单引号,这样就不必转义任何引号。 像这样:

echo';

关于使用PHP输出HTML的一些提示:

  • 使用单引号,这样就不必转义双引号(使用echo时)
  • 用于正确转义您可能拥有的任何“流氓”值
  • 使用回声的示例:

    echo '<input type="hidden" name="id" value="', htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'), '" />';
    
    或者,在HTML模式下:

    ?>
    <input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); ?>" />
    <?php
    
    ?>
    
    对于
    htmlspecialchars
    FYI,对于双引号
    属性,
    htmlspecialchars
    的默认值应该足够了,这样您就可以安全地省去第二个和第三个参数了。@Phil默认值应该足够了,但是他们过去没有:)PHP最大的问题是它的历史:)htmlspecialchars的默认值应该足够一个双引号的值了
    不,至少对我来说,我需要一个
    ENT\u引号
    来让
    htmlspecialchars
    起作用。这似乎与操作无关。(这里的问题似乎是如何逃避html属性值)公平点-我最初误解了这个问题。编辑。
    echo '<input type="hidden" name="id" value="', htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'), '" />';
    
    printf('<input type="hidden" name="id" value="%s" />', 
        htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8')
    );
    
    ?>
    <input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); ?>" />
    <?php