gpt4 book ai didi

php - 使用字符串替换换行

转载 作者:行者123 更新时间:2023-11-29 11:31:32 40 4
gpt4 key购买 nike

我在从 mysql 数据库获取数据时遇到问题。假设我在 mysql 表中有这样的文本:

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Suspendisse lobortis sit amet est in dapibus. Cras in dui diam.

这条新线造成了问题。

我正在使用 jQuery 将数据回显到自动创建的 div。

代码如下:

for(i = <?php echo $row; ?>; i > 0; i--){
count = 1;
<?php
while($col = mysqli_fetch_assoc($result))
{
$cols[] = $col;
}
foreach($cols as $col){
?>
$("#text"+count+"").text("<?php echo $col['post'] ?>");
$("#username"+count+"").text("<?php echo $col['username'] ?>");
count++;
<?php } ?>
}

我尝试删除新行或将其替换为 <br>使用字符串替换如 str_replace("\n", '<br />', $col['post']);但没有成功。我还尝试了许多其他代码,但没有任何效果对我有用。

感谢您的建议

最佳答案

最好将数据库访问逻辑和客户端 JavaScript 内容分开。您还可以使用nl2br()将换行符转换为 <br> 。所以像这样的东西应该效果更好。

<?php
$rows = array();
while($row = mysqli_fetch_assoc($result)) {
// replace new lines in post with HTML breaks
$row['post'] = nl2br($row['post']);
$rows[] = $row;
}
?>
<script>
// create javascript literal by echoing out JSON serialization of $rows from PHP
var dbRows = <?php echo json_encode($rows); ?>;
// iterate through DB records and create elements
$.each(dbRows, function(index, row) {
$('<div class="text">').text(row.post).appendTo('#someTargetElement');
$('<div class="username">').text(row.username).appendTo('#someTargetElement');
});
</script>

您的方法的一些变化包括:

  • 使用nl2br()从数据库检索数据以准备在 HTML 中使用。
  • 在 PHP 和 JavaScript 之间提供更好的分离。这是通过实际使数据库数据可在 JavaScript 中进行操作来完成的,而不是仅仅通过 javasctipt 注入(inject)。
  • 实际上是创建一个新的 div 元素来附加到 DOM。您的代码根本没有执行此操作
  • 放弃#text*反模式。 id 标签有什么值(value)?通常,当使用像 jQuery 这样的库时,您希望所有相似的项目都具有相似的类,以便您可以将它们作为一个类进行操作。

关于php - 使用字符串替换换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37331960/

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