Javascript 在JS中回显PHP值时标记无效

Javascript 在JS中回显PHP值时标记无效,javascript,php,Javascript,Php,我将PHP值回送到JavaSript字符串中,如下所示: var x = '<?php echo addcslashes($_GET['value'], "'") ?>'; 内联Javascript标记中不能存在连续字符。HTML标记在Javascript之前被解析,HTML标记中标记开始后的表示该标记的结束 您可以改为连接,这样,例如,您的文本将导致 var x = '"><script>alert(\'hi\')</scr' + 'ipt>';

我将PHP值回送到JavaSript字符串中,如下所示:

var x = '<?php echo addcslashes($_GET['value'], "'") ?>';

内联Javascript标记中不能存在连续字符
。HTML标记在Javascript之前被解析,HTML标记中
标记开始后的
表示该标记的结束

您可以改为连接,这样,例如,您的文本将导致

var x = '"><script>alert(\'hi\')</scr' + 'ipt>';
但最好不要动态构造Javascript代码。考虑使用数据属性,并将JavaScript分成单独的文件,如

<script
  src="script.js"
  data-x="<?php echo addcslashes($_GET['value'], "'") ?>"
></script>

内联Javascript
标记中不能存在连续字符。考虑通过<代码>数据-< /代码>属性插入数据,或者(更糟的)Ajax,尽管您也可以将代码的每一部分连接在<代码> <代码>中,这可能是因为您在标签前面有一个额外的“>”。浏览器不知道它是哪种脚本语言,所以从浏览器的角度来看,
var x='
可能不是字符串?您应该将其发布为answerFYI:Using
works,请参阅
$withSlashes = addcslashes($_GET['value'], "'");
$xContent = str_replace('</script>', "</scr' + 'ipt>", $withSlashes);
...
var x = '<?php echo $xContent ?>';
<script
  src="script.js"
  data-x="<?php echo addcslashes($_GET['value'], "'") ?>"
></script>