将PHP字符串编码输出到JavaScript变量的最简单方法是什么?
我有一个PHP字符串,其中包括引号和换行。我需要将这个字符串的内容放入一个JavaScript变量中。
通常,我只会在一个PHP文件中构造我的JavaScript, à la:
<script>
var myvar = "<?php echo $myVarValue;?>";
</script>
但是,当$myVarValue包含引号或换行符时,这就不起作用了。
将PHP字符串编码输出到JavaScript变量的最简单方法是什么?
我有一个PHP字符串,其中包括引号和换行。我需要将这个字符串的内容放入一个JavaScript变量中。
通常,我只会在一个PHP文件中构造我的JavaScript, à la:
<script>
var myvar = "<?php echo $myVarValue;?>";
</script>
但是,当$myVarValue包含引号或换行符时,这就不起作用了。
当前回答
如果你使用模板引擎来构建你的HTML,那么你可以用任何你想要的东西来填充它!
查看XTemplates。 它是一个很好的、开源的、轻量级的模板引擎。
你的HTML/JS看起来是这样的:
<script>
var myvar = {$MyVarValue};
</script>
其他回答
你可以试试
<script type="text/javascript">
myvar = unescape('<?=rawurlencode($myvar)?>');
</script>
如果你使用模板引擎来构建你的HTML,那么你可以用任何你想要的东西来填充它!
查看XTemplates。 它是一个很好的、开源的、轻量级的模板引擎。
你的HTML/JS看起来是这样的:
<script>
var myvar = {$MyVarValue};
</script>
<script>
var myVar = <?php echo json_encode($myVarValue); ?>;
</script>
or
<script>
var myVar = <?= json_encode($myVarValue) ?>;
</script>
用JSON编码
function escapeJavaScriptText($string)
{
return str_replace("\n", '\n', str_replace('"', '\"', addcslashes(str_replace("\r", '', (string)$string), "\0..\37'\\")));
}