好吧,我正在尝试回显一些代码行,但是它同时使用了""
和''
。
据我了解,如果您使用""
开始回显,则每次使用""
都会停止回显。
如何在不破坏代码的情况下打印此行代码? 这是我目前拥有的:
echo "<a class='lightbox' href='img/projects/generic/project-16.jpg' data-plugin-options='{'type':'image', 'mainClass': 'mfp-with-zoom', 'zoom': {'enabled': true, 'duration': 300}}'>";
data-plugin-options='{'type':'image', 'mainClass': 'mfp-with-zoom', 'zoom': {'enabled': true, 'duration': 300}}'
是引起我麻烦的一个,因为我不能使用“”,也不能使用“,因为一个会破坏回声,另一个会破坏标签。
希望任何人都可以帮助我理解和解决这个小问题,在此先谢谢大家!
答案 0 :(得分:1)
您尝试过这样的事情吗?
echo "<a class=\"lightbox\" href=\"img/projects/generic/project-16.jpg\" data-plugin-options=\"{'type':'image', 'mainClass': 'mfp-with-zoom', 'zoom': {'enabled': true, 'duration': 300}}\">";
在双引号字符串中加反斜杠(\"
)前缀的双引号会将其插入字符串本身,并防止其停止字符串块。
编辑:考虑到@Barmar的注释,应该更像这样将data-plugin-options的数据保留为有效JSON,从而将其用单引号引起来:
echo "<a class=\"lightbox\" href=\"img/projects/generic/project-16.jpg\" data-plugin-options='{\"type\":\"image\", \"mainClass\": \"mfp-with-zoom\", \"zoom\": {\"enabled\": true, \"duration\": 300}}'>";
因此,总结起来,PHP不支持使用""
来转义双引号,而需要使用\"
。 (从逻辑上讲\'
必须用于单引号字符串)
答案 1 :(得分:0)
data-plugin-options
中的引号必须为双引号,因为它被解析为JSON。
您可以通过在"
前面加上"
来使\
逸出。
echo "<a class='lightbox' href='img/projects/generic/project-16.jpg' data-plugin-options='{\"type\":\"image\", \"mainClass\": \"mfp-with-zoom\", \"zoom\": {\"enabled\": true, \"duration\": 300}}'>";