我有一个db的返回字符串。
返回字符串必须以javascript格式化。
<?php
$db = "this is a line
this is a new line";
?>
我如何将上述内容转换为:
<?php $db = "this is a line \n this is a new line"; ?>
使用Javascript:
<script>
var jdb = <?php echo $db; ?>
</script>
答案 0 :(得分:19)
试试这个(2014-11-08更新):
<?php
$db = "this is a line
this is a new line
";
?>
<script type="text/javascript">
var jdb = <?php echo json_encode($db) ?>;
</script>
答案 1 :(得分:7)
$db = preg_replace("/\n/m", '\n', $db);
应该做的伎俩
答案 2 :(得分:3)
要正确保留\r
和\n
换行符,您可以轻松使用strtr。
$db = strtr( $db, array( "\n" => "\\n", "\r" => "\\r" ));
答案 3 :(得分:2)
我不明白这一点,但你可以(通过添加反斜杠来逃避换行符)
$db = str_replace("\n","\\n",$db);
答案 4 :(得分:1)
$db = str_replace("\r\n", "\\n", $db);
答案 5 :(得分:0)
我不确定我是否理解正确,因为\ n是换行符!?
但你可能需要:
$db = str_replace("\r\n", "\n", $db);
答案 6 :(得分:0)
你想把它输出到javascript ...嗯,所以如果你想把它插入到html中你可能想要这样的东西(测试运行):
<div id="test"></div>
<script type="text/javascript">
<?php
$string = "123
456"; // or $string = "123\n456";
$string = str_replace(array("\r\n","\n"),"\\\\n",$string);
echo "document.getElementById('test').innerHTML = '".htmlentities($string)."';";
?>
</script>
输出123\n 456
通过js
如果您只是想在js中使用它,只需删除两个斜杠,使其在php中为“\ n”,在js中为“\ n”。
答案 7 :(得分:-3)
您应该查看nl2br(),它会将所有新行转换为HTML&lt; br /&gt;。 http://php.net/manual/en/function.nl2br.php