138 html
我是PHP中使用双引号的大用户,这样我就可以插入变量而不是连接字符串.因此,当我生成HTML时,我经常使用单引号来设置标记字段.例如:
$html = "<input type='text' name='address' value='$address'>";
Run Code Online (Sandbox Code Playgroud)
现在,这对我来说比任何一个都更具可读性
$html = "<input type=\"text\" name=\"address\" value=\"$address\">";
Run Code Online (Sandbox Code Playgroud)
要么
$html = '<input type="text" name="address" values="' . $address . '">' ;
Run Code Online (Sandbox Code Playgroud)
从简短的搜索中我听到有人说每个浏览器都无法识别HTML字段的单引号.因此,我想知道哪些浏览器在识别单引号HTML时会出现问题?
Gre*_*ill 142
这类似于什么时候HTML中的单引号变得如此受欢迎?.HTML中的属性的单引号始终是规范允许的.我认为任何浏览器都不会理解它们.
Ada*_*ire 48
正如PhiLho所指出的那样,尽管人们普遍认为单一引号不允许属性值,但这种看法是错误的.
在XML标准允许单和双引号的属性值.
XHTML标准没有说明改变这一点,但是一个相关的部分说明必须引用属性值,在示例中使用双引号,这可能会导致这种混淆.这个例子只是指出XHTML中的属性值必须满足XML中属性值的最低标准,这意味着它们必须被引用(与不关心的纯HTML相对),但不限制您使用单个或双引号.
当然,你总是有可能遇到一个不符合标准的解析器,但是当发生这种情况时,所有的赌注都会被取消.因此,最好只遵守规范所说的内容.毕竟,这就是我们有规格的原因.
Fly*_*wat 15
我听到有人说每个浏览器都无法识别HTML字段的单引号
那个人错了.
con*_*exo 12
当我在规范的更新版本中寻找有关此内容的信息时,我花了相当长的时间才找到它,如下所示:
\n从
\n\n\n超文本标记语言
\n生活标准 \xe2\x80\x94 最后更新于 2021 年 9 月 17 日
\n[...]
\n13.1.2.3 属性
\n单引号属性值语法
\n属性名称,后跟零个或多个 ASCII 空格,后跟单个 U+003D EQUALS SIGN 字符,后跟零个或多个 ASCII 空格,后跟单个 U+0027 撇号字符 (\'),最后跟属性值,除了上面给出的属性值要求外,不得包含任何文字 U+0027 撇号字符 (\'),最后后跟第二个单个 U+0027 撇号字符 (\')。
\n
\n在以下示例中,类型属性使用单引号属性值语法给出:Run Code Online (Sandbox Code Playgroud)\n<input type=\'checkbox\'>\n如果使用单引号属性语法的属性后跟另一个属性,则必须使用 ASCII 空格分隔这两个属性。
\n
\xe2\x80\x94 https://html.spec.whatwg.org/multipage/syntax.html#attributes-2
\n不要相信你在互联网上看到的一切......
有趣的是,我刚刚回答了类似于某人的事情,声称单引号在XHTML中无效......
嗯,我在打字时看上面,看到Adam N传播了同样的信念.如果他可以支持他的肯定,我会收回我写的内容...... AFAIK,XML是不可知的并接受这两种引用.我甚至尝试并验证了没有问题的XHTML页面只有单引号.
小智 5
唯一的问题是数据进入文本输入字段。考虑
<input value='it's gonna break'/>
Run Code Online (Sandbox Code Playgroud)
同:
<input value="i say - "this is gonna be trouble" "/>
Run Code Online (Sandbox Code Playgroud)
你无法逃避,你必须使用htmlspecialchars.