php – 单引号和双引号一起作为HTML属性值?

我们有这样的代码

echo '<input type="text" name="myInput" value="Double " Quotes" />';

绝对不行,因为Double结束后的引用值.
我们可以使用单引号而不是双引号来修复它.

echo '<input type="text" name="myInput" value=\'Double " Quotes\' />';

现在我想使用单引号和双引号作为值.它应该输出她说:“我不知道.”

有没有办法解决它没有使用HTML实体(像& quot;),htmlentities()或类似的功能

解决方法:

Is there a way to fix it WITHOUT using HTML entities (Like &quot;), htmlentities() or similar functions?

不,那里没有.双引号(“)在HTML属性中具有特殊含义.如果你想将它放入一个属性值,你必须(这不是一个真正的必须,但一个很好的经验法则.如果你使用由分隔的属性,这是必须的.你在问题中使用双引号)把它写成它的实体& quot;.没有办法绕过它.

实际上即使< tag attr ='this“'>也没有错误的HTML,大多数浏览器都可以处理它.但是它没有帮助你,因为你正在寻找引号 – 单引号和双引号 – 以及其中一个这些始终在HTML中的是属性值的分隔符 – 如果您在属性值中需要空格(就像您一样).

但是,不要担心.它有效,你可以用它来表达你喜欢的一切,包括你有的引用组合.

实际上,PHP可以让你承担“逃避”所有这些角色的负担,只需使用htmlspecialchars方法为你完成所有工作.在PHP字符串中,你有原始文本 – 你认为合适的单引号和双引号 – 逐字.

$myString = 'She said: "I don\'t kNow."';
printf('<input type="text" name="myInput" value="%s" />'
       , htmlspecialchars($myString));

只是一个缩短的例子,应该证明这是如何工作的. Online demo.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...