执行简单回声时遇到问题

时间:2018-11-17 15:52:55

标签: php html plugins

好吧,我正在尝试回显一些代码行,但是它同时使用了""''。 据我了解,如果您使用""开始回显,则每次使用""都会停止回显。

如何在不破坏代码的情况下打印此行代码? 这是我目前拥有的:

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}}'是引起我麻烦的一个,因为我不能使用“”,也不能使用“,因为一个会破坏回声,另一个会破坏标签。

希望任何人都可以帮助我理解和解决这个小问题,在此先谢谢大家!

2 个答案:

答案 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}}'>";