web-dev-qa-db-ja.com

HTMLエコー内の変数で二重引用符をエスケープする

HTMLを含むエコー内の変数の場合、二重引用符をエスケープするためにどこにスラッシュを追加しますか?

例:

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

この部分:

value=".$row['id']."
27
swiftsly

PHPでHTMLを出力する際のヒント:

  1. 二重引用符をエスケープする必要がないように、単一引用符を使用します(エコーを使用する場合)。
  2. htmlspecialchars() を使用して、「不正な」値を適切にエスケープします。

echoを使用した例:

_echo '<input type="hidden" name="id" value="', htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'), '" />';
_

またはprintf()

_printf('<input type="hidden" name="id" value="%s" />', 
    htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8')
);
_

または、HTMLモードで:

_?>
<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); ?>" />
<?php
_
52
Ja͢ck

htmlentitiesを使用:

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

引用符をエスケープする必要がないように、単一引用符を使用してください。そのようです:

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