我拿出一些我需要插入到javascript变量中的html /文本字符串.
例如,这就是它在php中的样子:
echo "<script type=\"text/javascript\">\n";
echo "var myvar='{$value}'";
echo "\n</script>";
Run Code Online (Sandbox Code Playgroud)
上述方法的问题是一些特殊字符实际上会破坏javascript代码.
所以,我尝试使用htmlspecialchars:
htmlspecialchars($value,11,'utf-8',true); //11 stands for ENT_QUOTES|ENT_SUBSTITUTE
Run Code Online (Sandbox Code Playgroud)
这确实取代了一些不寻常的字符,最重要的是引号.
然而,新的行字符传递它并打破我的JavaScript.
那我怎么能逃脱新的线路?我需要保留它们以便稍后在textareas中使用.
*编辑*我将发布我的变量的样本值.(它们实际上是来自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>
Run Code Online (Sandbox Code Playgroud)
dec*_*eze 11
<script type="text/javascript">
var myvar = <?php echo json_encode($value); ?>;
</script>
Run Code Online (Sandbox Code Playgroud)
JSON == Javascript表示法==输出到Javascript的任何值的正确编码/转义方法.
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |