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

swi*_*sly 27 html php mysql variables addslashes

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

例:

echo "<input type=\"hidden\" name=\"id\" value=".$row['id']." />";
Run Code Online (Sandbox Code Playgroud)

这部分:

value=".$row['id']."
Run Code Online (Sandbox Code Playgroud)

Ja͢*_*͢ck 56

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

  1. 使用单引号,这样您就不必转义双引号(使用echo时),
  2. 使用htmlspecialchars()正确逃生你可能有任何"流氓"的价值观.

示例使用echo:

echo '<input type="hidden" name="id" value="', htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'), '" />';
Run Code Online (Sandbox Code Playgroud)

或者printf():

printf('<input type="hidden" name="id" value="%s" />', 
    htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8')
);
Run Code Online (Sandbox Code Playgroud)

或者,在HTML模式下:

?>
<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); ?>" />
<?php
Run Code Online (Sandbox Code Playgroud)

  • 仅供参考,`htmlspecialchars`的默认值应足以满足双引号`value`属性,因此您可以放心地省去第二个和第三个参数. (2认同)