gpt4 book ai didi

javascript - 在 php 循环中写入 javascript 数组时如何将新行转换为实际\n

转载 作者:行者123 更新时间:2023-12-02 17:31:37 24 4
gpt4 key购买 nike

我有一段代码,它在 PHP 代码中写入 JS 对象数组(从 mysql 数据库检索),如下所示:

echo "var tab = [\n";
while($row = mysql_fetch_row($resultat)){
$numero = $row[0];
$notes = $row[1];
echo "{\n";
echo "numero:\"".$numero."\",";
echo "notes:\"".$notes."\" ";
echo "\n},";
}
echo "\n]";

(我简化了代码......在实际代码中,最后一个逗号被删除)

问题是:如果我在 $notes 中添加新行,它会破坏 JS 数组并生成 JS 解析错误,因为新行在 JS 代码中被写为真正的新行,而不是 "\n “应该如此。

例如,文本

"foo bar
foo bar"

应该写在JS数组中:

"foo bar\nfoo bar".

我想做的就是写“\n”来代替实际的新行。

我尝试过这个:

$notes = str_replace("\n", '\n', $row[1]);

但是没有成功。有什么想法吗?

最佳答案

将 PHP 数组转换为 JSON 的最佳方法是使用 json_encode功能:

$rows = [];
while ($row = mysql_fetch_assoc($resultat)) {
$rows[] = $row;
}
echo json_encode($rows);

我不记得是否有更简单的方法来通过旧的 mysql 函数获取整个结果集。我建议您使用 PDO 而不是 mysql_query , mysql_fetch_row等:http://www.php.net/manual/en/book.pdo.php

编辑:

如果要将 JSON 对象分配给变量,例如里面 <script>阻止,执行以下操作:

<script>
var myArray = <?= json_encode($rows) ?>;
</script>

关于javascript - 在 php 循环中写入 javascript 数组时如何将新行转换为实际\n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23012508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com