Je suis un grand utilisateur de l'utilisation de guillemets doubles en PHP afin de pouvoir interpoler des variables plutôt que de concaténer des chaînes. En conséquence, lorsque je génère du HTML, j'utilise souvent des guillemets simples pour définir les champs de balise. Par exemple:
$html = "<input type='text' name='address' value='$address'>";
Maintenant c'est beaucoup plus lisible pour moi que non plus
$html = "<input type=\"text\" name=\"address\" value=\"$address\">";
ou
$html = '<input type="text" name="address" values="' . $address . '">' ;
De brèves recherches, j'ai entendu des gens dire que les guillemets simples pour les champs HTML ne sont pas reconnus par TOUS les navigateurs. Ainsi, je me demande quels navigateurs auraient des problèmes pour reconnaître le HTML à guillemet simple?
Réponses:
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é autorisés par la spécification . Je ne pense pas qu'aucun navigateur ne les comprendrait.
la source
<img src='cid:xxx' ... />
pour afficher une image en ligne, elle n'apparaîtra pas du tout car l'ID de contenu a été ignoré. Vous devez utiliser `<img src =" cid: xxx "... /> à la place.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 erronée.
La norme XML autorise les guillemets simples et doubles autour des valeurs d'attribut.
La norme XHTML ne dit rien pour changer cela, mais une section connexe qui stipule que les valeurs d'attribut doivent être entre guillemets utilise des guillemets doubles dans l'exemple, ce qui a probablement conduit à cette confusion. Cet exemple montre simplement que les valeurs d'attribut en XHTML doivent répondre à la norme minimale pour les valeurs d'attribut en XML, ce qui signifie qu'elles doivent être entre guillemets (par opposition au HTML simple qui ne se soucie pas), mais ne vous limite pas à un seul ou à double citation.
Bien sûr, il est toujours possible que vous rencontriez un analyseur qui n'est pas conforme aux normes, mais lorsque cela se produit, tous les paris sont de toute façon ouverts. Il est donc préférable de s'en tenir à ce que dit la spécification. C'est pourquoi nous avons des spécifications, après tout.
la source
Cette personne a tort.
la source
Ne croyez pas tout ce que vous voyez sur Internet ...
Curieusement, je viens de répondre à quelque chose de similaire à quelqu'un déclarant que les guillemets simples ne sont pas valides en XHTML ...
Mmm, je regarde ci-dessus en tapant et je vois qu'Adam N propage la même croyance. S'il peut confirmer son affirmation, je rétracte 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 seulement des guillemets simples.
la source
Le seul problème est que les données entrent dans les champs de saisie de texte. Considérer
Même avec:
Vous ne pouvez pas y échapper, vous devez utiliser
htmlspecialchars
.la source
<input value='it's gonna break'/>
<input value="it's not gonna break"/>
et vice versa:<input value='i say - "this is not gonna be trouble"'/>
.Comme je cherchais à trouver des informations à ce sujet dans une version beaucoup plus récente de la spécification et qu'il m'a fallu un certain temps pour les trouver, la voici:
De
la source
J'ai aussi tendance à utiliser des guillemets simples en HTML et je n'ai jamais rencontré de problème.
la source
J'ai utilisé des guillemets simples dans les pages HTML et des JavaScripts intégrés et cela fonctionne bien. Testé dans IE9, Chrome et Firefox - semble fonctionner correctement.
la source
Récemment, j'ai rencontré un problème avec l'optimisation de la recherche Google. S'il contient des guillemets simples, il ne semble pas explorer les pages liées.
la source
<a href=''>
attributs?... ou utilisez simplement des heredocs. Ensuite, vous n'avez pas à vous soucier d'échapper à autre chose
END
.la source
Les guillemets simples conviennent pour HTML, mais ils ne font pas de XHTML valide, ce qui pourrait être problématique si quelqu'un utilisait un navigateur qui ne supportait que XHTML, mais pas HTML. Je ne crois pas qu'il existe de tels navigateurs, bien qu'il y ait probablement des agents utilisateurs qui nécessitent un XHTML strict.
la source
application/xhtml+xml
ouapplication/xml
.