我需要创建一个存储动态生成的HTML内容的变量。从PHP返回的String中的html内容可能有单引号或双引号。
html_content=<?=$string;?>;
该字符串可能有双引号,如下所示:
<span id="something">something else</span>
或单引号如下:
<span id='something'>something else</span>
然后,我怎样才能在javascript中正确保存字符串?我不能使用单引号或双引号。
答案 0 :(得分:2)
您可以在输出之前通过在服务器端修改它来保存这种字符串,如下所示:
html_content = "<?=addslashes($string);?>"
然后,方法addslashes($string)
将在运行时转义任何双引号,然后将其提供给JavaScript变量。
答案 1 :(得分:1)
您可以在存储之前始终使用JavaScript's escape function序列化字符串。那会有用。
我认为这里更大的问题是单引号实际上无效,就像你尝试在id属性中那样使用它们(根据HTML规范)。它必须是双引号。如果那些来自的代码不在你的控制之下,那么你可以做的并不多,它只是被打破了;但如果它在你的控制之下,你也应该修复它。
答案 2 :(得分:0)
使用json_encode
将几乎所有变量从PHP传递给JavaScript。
html_content=<?=json_encode($string)?>;
如果是字符串,它会自动添加引号和任何必要的转义。