如何转义php中的新行字符以输出为javascript字符串值


How to escape new line chars in php to output into a javascript string value?

我提取了一些需要插入到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的任何值的正确编码/转义方法。