在js代码中打印php字符串后,我得到错误
<script type = "text/javascript">
var editorHtml = "<?php echo $editorHtml; ?>";
</script>
当字符串包含"
双引号时,我得到Unexpected token ILLEGAL,因为双引号在中间关闭了JS字符串。
<script type = "text/javascript">
var editorHtml = '<?php echo $editorHtml; ?>';
</script>
我尝试这个,但我得到类似的问题,如果字符串包含'
单引号。我需要一个通用的解决方案,当字符串包含'
和"
引号。
<script type = "text/javascript">
var editorHtml = <?php echo str_replace(array(']]>', '<!'), array(']]'x3E', ''x3C!'), json_encode($editorHtml)); ?>;
</script>
在所有情况下都能正确消毒。
看一个例子:
<?php
$someVar = 1;
?>
<script type="text/javascript">
var javaScriptVar = "<?php echo $someVar; ?>";
</script>