web-dev-qa-db-fra.com

Échapper les guillemets doubles avec une variable à l'intérieur de l'écho HTML

Pour une variable à l'intérieur d'un écho contenant du HTML, où ajouter des barres obliques pour échapper aux guillemets doubles?

Exemple:

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

Cette partie:

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

Quelques conseils sur la sortie HTML avec PHP:

  1. Utilisez des guillemets simples pour ne pas avoir à échapper aux guillemets doubles (lorsque vous utilisez echo),
  2. Utilisez htmlspecialchars() pour échapper correctement toutes les valeurs "voyous" que vous pourriez avoir.

Exemple utilisant echo:

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

Ou printf():

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

Ou, en mode HTML:

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

Utilisez htmlentities:

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

Que diriez-vous d'utiliser des guillemets simples pour ne pas avoir à échapper à des guillemets. Ainsi:

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