我提取了一些需要插入到javascript变量中的html/text字符串。
例如,这就是它在php:中的样子
echo "<script type='"text/javascript'">'n";
echo "var myvar='{$value}'";
echo "'n</script>";
上述方法的问题在于,一些特殊字符实际上会破坏javascript代码。
所以,我尝试使用htmlspecialchars:
htmlspecialchars($value,11,'utf-8',true); //11 stands for ENT_QUOTES|ENT_SUBSTITUTE
这确实替换了一些不寻常的字符,最重要的是引号。
然而,换行符会传递它并破坏我的javascript。
那么我该如何摆脱换行符呢?我需要保留它们,以便稍后在文本区域中使用。
*编辑*我将发布我的变量的样本值。(它们实际上是Tiny_mce的输入)
<p>You've been...</p>
<p><iframe src="http://www.youtube.com/embed/8d7OBluielc?wmode=transparent" frameborder="0" width="640" height="360"></iframe></p>
<script type="text/javascript">
var myvar = <?php echo json_encode($value); ?>;
</script>
JSON==Javascript表示法==输出到Javascript的任何值的正确编码/转义方法。