160 votes

Les guillemets simples sont-ils autorisés en HTML ?

Je suis un grand utilisateur de l'utilisation des guillemets doubles en PHP afin de pouvoir analyser les variables sans concaténer les chaînes de caractères. Par conséquent, lorsque je génère du HTML, j'utilise souvent des guillemets simples pour définir les champs des balises. Exemple :

$html = "<input type='text' name='address' value='$address'>" ;

C'est beaucoup plus facile à lire pour moi que les deux autres.

$html = "<input type=\"text\" name=\"address\" value=\"$address\">" ;

ou

$html = '<input type="text" name="address" values="' . $address . '">' ;

Lors de mes brèves recherches, j'ai entendu des personnes dire que les guillemets simples pour les champs HTML n'étaient pas reconnus par TOUS les navigateurs. Je me demande donc quels navigateurs auraient des problèmes à reconnaître les guillemets simples dans les champs HTML ?

157voto

Greg Hewgill Points 356191

Ceci est similaire à Quand les guillemets simples en HTML sont-ils devenus si populaires ? . Les guillemets simples autour des attributs en HTML sont et ont toujours été permis par la spécification . Je ne pense pas qu'aucun navigateur ne les comprendrait pas.

58voto

Adam Bellaire Points 42797

Comme l'a noté PhiLho, bien qu'il existe une croyance largement répandue selon laquelle les guillemets simples ne sont pas autorisés pour les valeurs d'attribut, cette croyance est fausse.

Le site Norme XML autorise les guillemets simples et doubles autour des valeurs des attributs.

La norme XHTML ne dit rien pour changer cela, mais une section connexe qui stipule que les valeurs des attributs doivent être citées utilise des guillemets dans l'exemple, ce qui a probablement conduit à cette confusion. Cet exemple indique simplement que les valeurs d'attribut en XHTML doivent respecter la norme minimale pour les valeurs d'attribut en XML, ce qui signifie qu'elles doivent être entre guillemets (contrairement au HTML simple qui ne s'en soucie pas), mais ne vous limite pas aux guillemets simples ou doubles.

Bien sûr, il est toujours possible de rencontrer un analyseur syntaxique qui n'est pas conforme aux normes, mais lorsque cela se produit, tous les paris sont perdus. Il est donc préférable de s'en tenir à ce que dit la spécification. C'est pour cela que nous avons des spécifications, après tout.

16voto

FlySwat Points 61945

J'ai entendu des gens dire que les guillemets simples pour les champs HTML ne sont pas reconnus par TOUS les navigateurs.

Cette personne a tort.

7voto

PhiLho Points 23458

Ne croyez pas tout ce que vous voyez sur Internet...
Curieusement, je viens de répondre à une question similaire à quelqu'un qui déclarait que les guillemets simples n'étaient pas valides en XHTML...

Mmm, je regarde plus haut en tapant, et je vois qu'Adam N propage la même croyance. S'il peut étayer son affirmation, je retire ce que j'ai écrit... AFAIK, XML est agnostique et accepte les deux types de citation. J'ai même essayé et validé sans problème une page XHTML avec uniquement des guillemets simples.

5voto

inteblio Points 30

Le seul problème concerne les données qui entrent dans les champs TEXT INPUT. Pensez à

<input value='it's gonna break'/>

Même chose pour :

<input value="i say - "this is gonna be trouble" "/>

Tu ne peux pas y échapper, tu dois utiliser htmlspecialchars .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X