PHP中单引号拼接变量输出HTML事件属性缺单引号问题咨询
问题解决方案
你的问题根源是没有把需要输出的参数单引号加入到PHP拼接的字符串中,PHP默认只会输出你显式声明的字符串内容,因此需要手动补充转义后的单引号。
修改方案(适配你当前PHP单引号包裹字符串的场景)
将原有代码替换为如下内容即可:
onclick="copy(\''.$color->colorcode_2.'\', this)"
原理说明
- 你需要输出的
'是静态字符串内容,需要放到PHP的字符串段内才能被输出 - 由于你当前外层使用PHP单引号包裹整个HTML字符串,单引号需要用反斜杠
\转义后才能作为普通字符输出,因此在变量前后各补充一个转义后的单引号\',就能在最终输出的内容里给参数加上单引号。
可选优化(安全增强)
如果$color->colorcode_2的内容存在用户可控的可能性,建议增加HTML实体转义避免XSS漏洞,写法如下:
onclick="copy(\''.htmlspecialchars($color->colorcode_2).'\', this)"
内容的提问来源于stack exchange,提问作者Hitesh Chauhan
相关产品推荐
相关产品推荐

